home *** CD-ROM | disk | FTP | other *** search
/ Network CD 1 / Network CD.iso / amospd / 521-530 / apd529 / tech-battle.amos / tech-battle.amosSourceCode < prev   
AMOS Source Code  |  1993-01-08  |  75KB  |  2,557 lines

  1. Set Buffer 28
  2. Screen Open 0,400,256,32,Lowres
  3. Flash Off : Curs Off 
  4. Load Iff "iff/tech.letters.iff"
  5. Screen Hide 0
  6. X=3
  7. For A=1 To 10
  8.    Get Bob 0,A,X,14 To X+22,36
  9.    X=X+22
  10. Next A
  11. X=3
  12. For A=1 To 9
  13.    Get Bob 0,A+10,X,48 To X+22,70
  14.    X=X+22
  15. Next A
  16. X=3
  17. For A=1 To 6
  18.    Get Bob 0,A+19,X,78 To X+22,100
  19.    X=X+22
  20. Next A
  21. Load Iff "iff/tech.title.iff"
  22. Flash Off : Curs Off 
  23. Screen Show 0
  24. Def Scroll 1,0,190 To 375,212,-1,0
  25. Shift Down 2,3,16,1
  26. Music 1
  27. Tempo 8
  28. A$="..... hello every one out there in amiga land"
  29. A$=A$+".....  yes its the old text scroller in the p.d program "
  30. A$=A$+"and before you say anything i know its awful ."
  31. A$=A$+"the scroller that is not the game ......."
  32. A$=A$+"so just sit back and read this if you want to or you could "
  33. A$=A$+"always press the mouse key and start my first attempt at "
  34. A$=A$+"a full game ....... this game was written over five weekends "
  35. A$=A$+"and a few late nights when there was nothing else to do . "
  36. A$=A$+"the main program extends over two thousand and five hundred lines of text "
  37. A$=A$+"and has a text buffer of twenty eight kb so by the time "
  38. A$=A$+"you add sprites and screens it just wouldnt fit in a half"
  39. A$=A$+"meg machine sorry about that .."
  40. A$=A$+"   anyone looking at the master program will soon descover that "
  41. A$=A$+"i am a very untidy programer so any beginers out there look at "
  42. A$=A$+"the code if you like but dont follow my example pleaseee . "
  43. A$=A$+" anyway thats enough crap about the program ...... "
  44. A$=A$+" by the way if you like the game please drop me a letter "
  45. A$=A$+"as i would like to hear any comments you might have "
  46. A$=A$+"at bellevue rosevale seven two nine two tasmania "
  47. A$=A$+"and yes its a farm address if it looks a bit odd "
  48. A$=A$+"........ and now for a bit of dribble about myself "
  49. A$=A$+"people that know me call me rag you can guess why "
  50. A$=A$+"i drive a red celica which i just bent badly so its in the bobyworks"
  51. A$=A$+" getting fixed yes speeding yet again i cant help it. "
  52. A$=A$+"come on who ever you are start the game i am sick of typing "
  53. A$=A$+" i am going to bed ................................... "
  54. A$=A$+"youre not still reading are you ahhhhh you are ....back to the start....    z"
  55. Z=0
  56. LETTER=1
  57. Do 
  58. Scroll 1
  59. Inc Z
  60. If Z=20 Then Gosub NLETTER
  61. If Mouse Key<>0 Then Goto QUESTIONS
  62. Loop 
  63. NLETTER:
  64.    B$=Mid$(A$,LETTER,1) : If B$="z" Then LETTER=1
  65.    If B$="a" Then Paste Bob 350,190,1
  66.    If B$="b" Then Paste Bob 350,190,2
  67.    If B$="c" Then Paste Bob 350,190,3
  68.    If B$="d" Then Paste Bob 350,190,4
  69.    If B$="e" Then Paste Bob 350,190,5
  70.    If B$="f" Then Paste Bob 350,190,6
  71.    If B$="g" Then Paste Bob 350,190,7
  72.    If B$="h" Then Paste Bob 350,190,8
  73.    If B$="i" Then Paste Bob 350,190,9
  74.    If B$="j" Then Paste Bob 350,190,10
  75.    If B$="k" Then Paste Bob 350,190,11
  76.    If B$="l" Then Paste Bob 350,190,12
  77.    If B$="m" Then Paste Bob 350,190,13
  78.    If B$="n" Then Paste Bob 350,190,14
  79.    If B$="o" Then Paste Bob 350,190,15
  80.    If B$="p" Then Paste Bob 350,190,16
  81.    If B$="r" Then Paste Bob 350,190,17
  82.    If B$="s" Then Paste Bob 350,190,18
  83.    If B$="t" Then Paste Bob 350,190,19
  84.    If B$="u" Then Paste Bob 350,190,20
  85.    If B$="v" Then Paste Bob 350,190,21
  86.    If B$="w" Then Paste Bob 350,190,22
  87.    If B$="x" Then Paste Bob 350,190,23
  88.    If B$="y" Then Paste Bob 350,190,24
  89.    If B$="." Then Paste Bob 350,190,25
  90.    Inc LETTER
  91.    Z=0
  92. Return 
  93. QUESTIONS:
  94.    Shift Off 
  95.    Cls 
  96.    Print 
  97.    Print 
  98.    Print "  INSTRUCTIONS  left = no / right = yes"
  99.    Repeat : Until Mouse Key=0
  100.    Repeat 
  101.    Until Mouse Key<>0
  102.    If Mouse Key=1 Then Goto MAIN
  103.    Cls 
  104.    Print "INSTRUCTIONS"
  105.    Print 
  106.    Print "The game is fully mouse driven, using pull"
  107.    Print "down menus which open up from the pointers"
  108.    Print "location. Which does mean you have to "
  109.    Print "move the pointer to the left of the screen"
  110.    Print "so you can see the whole menu . Sorry "
  111.    Print "about that but it was the neatest way i "
  112.    Print "could think of doing it at the time ."
  113.    Print 
  114.    Print "The play field can be scolled around "
  115.    Print "by moving the pionter to far right or "
  116.    Print "far left of the screen."
  117.    Print "There is also a partial rebuild of "
  118.    Print "each players forces every 10 days"
  119.    Print "of conflict where damaged ships have "
  120.    Print "one piont of strength returned and "
  121.    Print "players get 1 long range fighter and 1"
  122.    Print "short range fighter returned to them if"
  123.    Print "1 or more have been destroyed."
  124.    Print "There is no set order for the players"
  125.    Print "to take there turn . That has been left"
  126.    Print "to you, whether you change every move "
  127.    Print "or only after each player has done"
  128.    Print "all his moves for the day."
  129.    Print 
  130.    Print "There is three main menu items for each"
  131.    Print "side these are EXTRAS , MOVE and FIRE "
  132.    Print 
  133.    Print "press mouse key to continue"
  134.    Repeat : Until Mouse Key=0
  135.    Repeat : Until Mouse Key<>0
  136.    Cls 
  137.    Print "EXTRAS :"
  138.    Print 
  139.    Print "DONE :"
  140.    Print "Exit the days fighting."
  141.    Print "also gives you list of stength"
  142.    Print "and fuel remaining for all your craft"
  143.    Print "and instilations."
  144.    Print "LAUNCH - short and long rang fighters "
  145.    Print "Puts you aircraft in the sky"
  146.    Print "just move the mouse to the location"
  147.    Print "and press either mouse button."
  148.    Print "MAX  long range fighters 8 "
  149.    Print "MAX  short range fighters 5 "
  150.    Print "LAND - short and long range fighters "
  151.    Print "lands all aircraft that are "
  152.    Print "close to airbase (long range)"
  153.    Print "close to carrier (short range)"
  154.    Print "NIGHT BOMBER"
  155.    Print "Can only be used after 50 days of "
  156.    Print "conflict and you only get 2 of them."
  157.    Print "Can only be fired at enemys main base"
  158.    Print "area . Just move pionter to target"
  159.    Print "and press either mouse button"
  160.    Print "MISSLE"
  161.    Print "Can only be used after 30 days of"
  162.    Print "conflict and you only get 3 of them."
  163.    Print "is fired in the same way as the "
  164.    Print "night bomber . This weapon can hit "
  165.    Print "many targets if they are close together"
  166.    Print 
  167.    Print "mouse key continue"
  168.    Repeat : Until Mouse Key=0
  169.    Repeat : Until Mouse Key<>0
  170.    Cls 
  171.    Print "MOVE"
  172.    Print 
  173.    Print "CARRIER"
  174.    Print 
  175.    Print "Just piont to new location and press"
  176.    Print "either mouse button "
  177.    Print 
  178.    Print "DESTROYERS - AIRCRAFT - PATROL BOATS"
  179.    Print 
  180.    Print "A red target will appear over "
  181.    Print "the craft you are about to move "
  182.    Print "if you dont want to move that craft"
  183.    Print "press the left button to go to the "
  184.    Print "next craft of that type ."
  185.    Print "Otherwise press the right button "
  186.    Print "piont to the new location and "
  187.    Print "and press again to move."
  188.    Print 
  189.    Print "press mouse key to continue"
  190.    Repeat : Until Mouse Key=0
  191.    Repeat : Until Mouse Key<>0
  192.    Cls 
  193.    Print "FIRE"
  194.    Print 
  195.    Print "CARRIER"
  196.    Print 
  197.    Print "Press left button to select direction"
  198.    Print "to fire in (red target)."
  199.    Print "press right button to select it "
  200.    Print "then press either button when "
  201.    Print "the horizontal and vertical bars"
  202.    Print "line up with the target to fire."
  203.    Print 
  204.    Print "DESTROYER"
  205.    Print 
  206.    Print "Select which destroyer to fire in"
  207.    Print "the same way that you do to move craft"
  208.    Print "then its the same as the carrier"
  209.    Print 
  210.    Print "OTHER CARFT AND INSTALATIONS"
  211.    Print 
  212.    Print "Select which object to fire in the "
  213.    Print "same way thet you do to move craft"
  214.    Print "then press either button when"
  215.    Print "the horizontal and vertical bars"
  216.    Print "line up with the target to fire."
  217.    Print 
  218.    Print "press mouse key to continue "
  219.    Repeat : Until Mouse Key=0
  220.    Repeat : Until Mouse Key<>0
  221.    Cls 
  222.    Print "Each object in the game has a different"
  223.    Print "strength fire power."
  224.    Print "field cannons , short range fighters"
  225.    Print "long range fighters and patrol boats"
  226.    Print "all have a hit strength of 1."
  227.    Print "long range cannons and scatter cannons"
  228.    Print "both have a hit strength of 2."
  229.    Print "destroyers have a hit strength of 1"
  230.    Print "but there front cannon has a strength"
  231.    Print "of 2."
  232.    Print "carriers have a hit strength of"
  233.    Print "1 to the right and left ."
  234.    Print "2 to the rear and 3 to the front"
  235.    Print "cannons."
  236.    Print 
  237.    Print "press mouse key to continue "
  238.    Repeat : Until Mouse Key=0
  239.    Repeat : Until Mouse Key<>0
  240. MAIN:
  241.    Music Off 
  242. Rem screen setup bob data
  243.    Screen Open 1,320,256,16,Lowres
  244.    Screen Open 0,980,247,16,Lowres
  245.    Load Iff "iff/tech.back3.iff"
  246.    Screen Copy 0,0,0,320,256 To 0,640,0
  247.    Load Iff "iff/tech.back2.iff"
  248.    Screen Copy 0,0,0,320,256 To 0,320,0
  249.    Load Iff "iff/tech.back1.iff"
  250.    Load "sprites/tech-ship2.abk"
  251. Rem basic setup  variables etc 
  252.    Limit Mouse 115,50 To 443,295
  253.    Reserve Zone 64
  254.    Flash Off : Curs Off 
  255.    Dim FX1(4) : Dim FY1(4) : Dim FX2(4) : Dim FY2(4)
  256.    Dim LX1(2) : Dim LY1(2) : Dim LX2(2) : Dim LY2(2)
  257.    Dim SX1(2) : Dim SY1(2) : Dim SX2(2) : Dim SY2(2)
  258.    Dim DX1(2) : Dim DY1(2) : Dim DX2(2) : Dim DY2(2)
  259.    Dim PX1(3) : Dim PY1(3) : Dim PX2(3) : Dim PY2(3)
  260.    Dim AX1(5) : Dim AY1(5) : Dim BX1(8) : Dim BY1(8)
  261.    Dim AX2(5) : Dim AY2(5) : Dim BX2(8) : Dim BY2(8)
  262.    Dim A1(5) : Dim B1(8) : Dim BS1(8)
  263.    Dim A2(5) : Dim B2(8) : Dim BS2(8)
  264.    Dim FS1(4) : Dim LS1(2) : Dim SS1(2) : Dim DS1(2) : Dim PS1(3)
  265.    Dim FS2(4) : Dim LS2(2) : Dim SS2(2) : Dim DS2(2) : Dim PS2(3)
  266.    Dim M1(30) : Dim M2(30) : Dim BF1(8) : Dim BF2(8) : Dim AF1(5) : Dim AF2(5)
  267.    For A=1 To 4
  268.       FS1(A)=3
  269.       FS2(A)=3
  270.    Next A
  271.    For A=1 To 2
  272.       LS1(A)=5 : LS2(A)=5
  273.       SS1(A)=5 : SS2(A)=5
  274.       DS1(A)=8 : DS2(A)=8
  275.    Next A
  276.    For A=1 To 3
  277.       PS1(A)=5 : PS2(A)=5
  278.    Next A
  279.    For A=1 To 5
  280.       A1(A)=0
  281.       A2(A)=0
  282.    Next A
  283.    For A=1 To 8
  284.       B1(A)=0
  285.       B2(A)=0
  286.       BS1(A)=2
  287.       BS2(A)=2
  288.    Next A
  289.    MS1=30 : MS2=30 : GS1=25 : GS2=25 : CS1=12 : CS2=12
  290.    MX1=4 : MY1=113 : MX2=940 : MY2=94
  291.    AAX1=30 : AAY1=150 : AAX2=895 : AAY2=154
  292.    CX1=175 : CY1=196 : CX2=765 : CY2=81
  293.    FX1(1)=135 : FX1(2)=159 : FX1(3)=129 : FX1(4)=67
  294.    FY1(1)=41 : FY1(2)=141 : FY1(3)=179 : FY1(4)=215
  295.    FX2(1)=827 : FX2(2)=790 : FX2(3)=800 : FX2(4)=804
  296.    FY2(1)=183 : FY2(2)=126 : FY2(3)=104 : FY2(4)=56
  297.    LX1(1)=167 : LX1(2)=68 : LY1(1)=102 : LY1(2)=54
  298.    LX2(1)=774 : LX2(2)=772 : LY2(1)=146 : LY2(2)=212
  299.    SX1(1)=40 : SX1(2)=36 : SY1(1)=135 : SY1(2)=101
  300.    SX2(1)=890 : SX2(2)=902 : SY2(1)=115 : SY2(2)=71
  301.    DX1(1)=175 : DX1(2)=176 : DY1(1)=233 : DY1(2)=48
  302.    DX2(1)=766 : DX2(2)=799 : DY2(1)=183 : DY2(2)=22
  303.    PX1(1)=142 : PX1(2)=107 : PX1(3)=119 : PY1(1)=218 : PY1(2)=162 : PY1(3)=82
  304.    PX2(1)=827 : PX2(2)=839 : PX2(3)=821 : PY2(1)=37 : PY2(2)=90 : PY2(3)=230
  305.    Bob 35,MX1,MY1,47 : Bob 36,AAX1,AAY1,46 : Bob 51,MX2,MY2,47 : Bob 52,AAX2,AAY2,46
  306.    Set Zone 35,MX1,MY1 To MX1+18,MY1+17 : Set Zone 36,AAX1,AAY1 To AAX1+50,AAY1+12
  307.    Set Zone 51,MX2,MY2 To MX2+18,MY2+17 : Set Zone 52,AAX2,AAY2 To AAX2+50,AAY2+12
  308.    Bob 37,CX1,CY1,43 : Bob 53,CX2,CY2,42
  309.    Set Zone 37,CX1,CY1 To CX1+36,CY1+11 : Set Zone 53,CX2,CY2 To CX2+36,CY2+11
  310.    For A=1 To 4
  311.    Bob 26+A,FX1(A),FY1(A),38
  312.    Set Zone 26+A,FX1(A),FY1(A) To FX1(A)+12,FY1(A)+10
  313.    Bob 42+A,FX2(A),FY2(A),37
  314.    Set Zone 42+A,FX2(A),FY2(A) To FX2(A)+12,FY2(A)+10
  315.    Next A
  316.    For A=1 To 2
  317.    Bob 30+A,LX1(A),LY1(A),40
  318.    Set Zone 30+A,LX1(A),LY1(A) To LX1(A)+19,LY1(A)+10
  319.    Bob 32+A,SX1(A),SY1(A),41
  320.    Set Zone 32+A,SX1(A),SY1(A) To SX1(A)+10,SY1(A)+10
  321.    Bob 37+A,DX1(A),DY1(A),26
  322.    Set Zone 37+A,DX1(A),DY1(A) To DX1(A)+29,DY1(A)+9
  323.    Bob 46+A,LX2(A),LY2(A),39
  324.    Set Zone 46+A,LX2(A),LY2(A) To LX2(A)+19,LY2(A)+10
  325.    Bob 48+A,SX2(A),SY2(A),41
  326.    Set Zone 48+A,SX2(A),SY2(A) To SX2(A)+10,SY2(A)+10
  327.    Bob 53+A,DX2(A),DY2(A),25
  328.    Set Zone 53+A,DX2(A),DY2(A) To DX2(A)+29,DY2(A)+9
  329.    Next A
  330.    For A=1 To 3
  331.    Bob 39+A,PX1(A),PY1(A),17
  332.    Set Zone 39+A,PX1(A),PY1(A) To PX1(A)+15,PY1(A)+7
  333.    Bob 55+A,PX2(A),PY2(A),18
  334.    Set Zone 55+A,PX2(A),PY2(A) To PX2(A)+15,PY2(A)+7
  335.    Next A
  336.    For A=1 To 8
  337.       BS1(A)=2 : BS2(A)=2
  338.    Next A
  339.    For A=1 To 5
  340.       AF1(A)=10 : AF2(A)=10
  341.    Next A
  342.    GTIME=0 : LFUEL=0 : PRODUTION=0 : P1BOM=2 : P2BOM=2 : P1MIS=3 : P2MIS=3
  343. Rem mouse movement 
  344.    Channel 1 To Screen Offset 0
  345.    A$="Loop : ;"
  346.    A$=A$+"Let RA = X ;"
  347.    A$=A$+"If XM > 435 Jump Aa ;"
  348.    A$=A$+"If XM < 120 Jump Bb ;"
  349.    A$=A$+"Pause ; Jump Loop ;"
  350.    A$=A$+"Bb : ;"
  351.    A$=A$+"If X < 5 Jump Loop ;"
  352.    A$=A$+"Let X = X - 5 ; Pause ; Jump Loop ;"
  353.    A$=A$+"Aa : ;"
  354.    A$=A$+"If X > 625 Jump Loop ;"
  355.    A$=A$+"Let X = X + 5 ; Pause ; Jump Loop "
  356.    Amal 1,A$
  357.    Amal On 1
  358. Rem menu 
  359.    Menu$(1)="p1 ext "
  360.    Menu$(2)="P1 M "
  361.    Menu$(3)="P1 F "
  362.    Menu$(4)="p2 ext "
  363.    Menu$(5)="P2 M "
  364.    Menu$(6)="P2 F "
  365.    Menu$(1,1)="done" : Menu$(1,2)="night bombers"
  366.    Menu$(1,3)="missle"
  367.    Menu$(1,4)="launch short range fighter"
  368.    Menu$(1,5)="launch long range fighter"
  369.    Menu$(1,6)="land short range fighter"
  370.    Menu$(1,7)="land long rang fighter"
  371.    Menu$(4,1)="night bombers"
  372.    Menu$(4,2)="missle"
  373.    Menu$(4,3)="launch short range fighter"
  374.    Menu$(4,4)="launch long range fighter"
  375.    Menu$(4,5)="land short range fighter"
  376.    Menu$(4,6)="land long rang fighter"
  377.    Menu$(2,1)="carrier" : Menu$(3,1)="carrier"
  378.    Menu$(2,2)="destroyers" : Menu$(3,2)="destroyers"
  379.    Menu$(2,3)="patrol boats" : Menu$(3,3)="patrol boats"
  380.    Menu$(2,4)="short range fighters"
  381.    Menu$(3,4)="short range fighters"
  382.    Menu$(2,5)="long range fighters"
  383.    Menu$(3,5)="long range fighters"
  384.    Menu$(3,6)="field cannons"
  385.    Menu$(3,7)="long range cannons"
  386.    Menu$(3,8)="scatter cannons"
  387.    Menu$(5,1)="carrier" : Menu$(6,1)="carrier"
  388.    Menu$(5,2)="destroyers" : Menu$(6,2)="destroyers"
  389.    Menu$(5,3)="patrol boats" : Menu$(6,3)="patrol boats"
  390.    Menu$(5,4)="short range fighters"
  391.    Menu$(6,4)="short range fighters"
  392.    Menu$(5,5)="long range fighters"
  393.    Menu$(6,5)="long range fighters"
  394.    Menu$(6,6)="field cannons"
  395.    Menu$(6,7)="long range cannons"
  396.    Menu$(6,8)="scatter cannons"
  397.    Menu Mouse On 
  398.    Menu On 
  399. Rem main loop
  400.    On Menu Gosub P1DONE,P1MOVE,P1FIRE,P2DONE,P2MOVE,P2FIRE
  401.    On Menu On 
  402.    Do 
  403.    Loop 
  404. Rem player one done
  405. P1DONE:
  406.    Z=Choice(2)
  407.    If Z=1 Then Gosub P1STAT
  408.    If Z=2 Then Gosub P1B
  409.    If Z=3 Then Gosub P1M
  410.    If Z=4 Then Gosub P1SL
  411.    If Z=5 Then Gosub P1LL
  412.    If Z=6 Then Gosub P1SLL
  413.    If Z=7 Then Gosub P1LLL
  414.    On Menu On 
  415. Return 
  416. Rem player one move
  417. P1MOVE:
  418.    Z=Choice(2)
  419.    If Z=1 Then Gosub P1CM
  420.    If Z=2 Then Gosub P1DM
  421.    If Z=3 Then Gosub P1PM
  422.    If Z=4 Then Gosub P1SM
  423.    If Z=5 Then Gosub P1LM
  424.    On Menu On 
  425. Return 
  426. Rem player one fire
  427. P1FIRE:
  428.    Z=Choice(2)
  429.    If Z=1 Then Gosub P1CF
  430.    If Z=2 Then Gosub P1DF
  431.    If Z=3 Then Gosub P1PF
  432.    If Z=4 Then Gosub P1SF
  433.    If Z=5 Then Gosub P1LF
  434.    If Z=6 Then Gosub P1FF
  435.    If Z=7 Then Gosub P1LCF
  436.    If Z=8 Then Gosub P1SCF
  437.    On Menu On 
  438. Return 
  439. Rem player two done
  440. P2DONE:
  441.    Z=Choice(2)
  442.    If Z=1 Then Gosub P2B
  443.    If Z=2 Then Gosub P2M
  444.    If Z=3 Then Gosub P2SL
  445.    If Z=4 Then Gosub P2LL
  446.    If Z=5 Then Gosub P2SLL
  447.    If Z=6 Then Gosub P2LLL
  448.    On Menu On 
  449. Return 
  450. Rem player two move
  451. P2MOVE:
  452.    Z=Choice(2)
  453.    If Z=1 Then Gosub P2CM
  454.    If Z=2 Then Gosub P2DM
  455.    If Z=3 Then Gosub P2PM
  456.    If Z=4 Then Gosub P2SM
  457.    If Z=5 Then Gosub P2LM
  458.    On Menu On 
  459. Return 
  460. Rem player two fire
  461. P2FIRE:
  462.    Z=Choice(2)
  463.    If Z=1 Then Gosub P2CF
  464.    If Z=2 Then Gosub P2DF
  465.    If Z=3 Then Gosub P2PF
  466.    If Z=4 Then Gosub P2SF
  467.    If Z=5 Then Gosub P2LF
  468.    If Z=6 Then Gosub P2FF
  469.    If Z=7 Then Gosub P2LCF
  470.    If Z=8 Then Gosub P2SCF
  471.    On Menu On 
  472. Return 
  473. Rem move player 1 carrier
  474. P1CM:
  475.    If CS1<=0 Then Bell : Return 
  476.    If M1(1)=1 Then Bell : Return 
  477.    Bob 64,CX1,CY1,64
  478.    MM=Amreg(0) : QX=MM
  479.    If CX1<(MM+20) or CX1>(MM+295) Then QX=CX1-150
  480.    If QX<0 Then QX=0
  481.    If QX>625 Then QX=625
  482.    Screen Offset 0,QX,0 : MM=QX
  483.    Limit Mouse((CX1+104)-MM),CY1+42 To((CX1+128)-MM),CY1+66
  484.    TEST:
  485.       Repeat 
  486.       Until Mouse Click<>0
  487.       X=((X Mouse-116)+MM) : Y=Y Mouse-54
  488.       If Y<0 Then Bell : Goto TEST
  489.       If Y>230 Then Bell : Goto TEST
  490.       A=Abs(X-CX1) : B=Abs(Y-CY1) : IMAGE=I Bob(37) : OO=36 : PP=11
  491.       If A>B and(X-CX1)<0 Then Bob 37,,,42
  492.       If A>B and(X-CX1)>0 Then Bob 37,,,43
  493.       If A<B and(Y-CY1)<0 Then Bob 37,,,45 : OO=14 : PP=37
  494.       If A<B and(Y-CY1)>0 Then Bob 37,,,44 : OO=14 : PP=37
  495.       XX=X : YY=Y
  496.       Gosub CHECKLAND
  497.       If Q=1 Then Bob 37,,,IMAGE : Goto TEST
  498.       X=XX+OO : Y=YY : Gosub CHECKLAND
  499.       If Q=1 Then Bob 37,,,IMAGE : Goto TEST
  500.       X=XX+OO : Y=YY+PP : Gosub CHECKLAND
  501.       If Q=1 Then Bob 37,,,IMAGE : Goto TEST
  502.       X=XX : Y=YY+PP : Gosub CHECKLAND
  503.       If Q=1 Then Bob 37,,,IMAGE : Goto TEST
  504.       X=XX : Y=YY
  505.       CX1=X : CY1=Y : Bob 37,CX1,CY1,
  506.       Set Zone 37,CX1,CY1 To CX1+OO,CY1+PP
  507.    Limit Mouse 115,50 To 443,295
  508.    Bob Off 64
  509.    M1(1)=1
  510. Return 
  511. Rem player 1 destroyer move
  512. P1DM:
  513.  For M=1 To 2
  514.    If DS1(M)<=0 Then Goto TILL
  515.    If M1(1+M)=1 Then Goto TILL
  516.    Bob 64,DX1(M),DY1(M),64
  517.    MM=Amreg(0) : QX=MM
  518.    If DX1(M)<(MM+20) or DX1(M)>(MM+295) Then QX=DX1(1)-150
  519.    If QX<0 Then QX=0
  520.    If QX>625 Then QX=625
  521.    Screen Offset 0,QX,0 : MM=QX
  522.    Limit Mouse((DX1(M)+100)-MM),DY1(M)+38 To((DX1(M)+132)-MM),DY1(M)+70
  523.    Repeat : Until Mouse Key=0
  524.    Repeat 
  525.    Until Mouse Key<>0
  526.    If Mouse Key=1 Then Goto TILL
  527.    Repeat : Until Mouse Key=0
  528.    TEST1:
  529.       Repeat 
  530.       Until Mouse Click<>0
  531.       X=((X Mouse-116)+MM) : Y=Y Mouse-54
  532.       If Y<0 Then Bell : Goto TEST1
  533.       If Y>230 Then Bell : Goto TEST1
  534.       A=Abs(X-DX1(M)) : B=Abs(Y-DY1(M)) : OO=17 : PP=17
  535.       IMAGE=I Bob(37+M)
  536.       If A>B and(X-DX1(M))<0 Then Bob 37+M,,,25 : OO=29 : PP=9
  537.       If A>B and(X-DX1(M))>0 Then Bob 37+M,,,26 : OO=29 : PP=9
  538.       If A<B and(Y-DY1(M))<0 Then Bob 37+M,,,27 : OO=10 : PP=30
  539.       If A<B and(Y-DY1(M))>0 Then Bob 37+M,,,28 : OO=10 : PP=30
  540.       If X-DX1(M)=-16 and Y-DY1(M)=-16 Then Bob 37+M,,,32
  541.       If X-DX1(M)=16 and Y-DY1(M)=-16 Then Bob 37+M,,,30
  542.       If X-DX1(M)=-16 and Y-DY1(M)=16 Then Bob 37+M,,,29
  543.       If X-DX1(M)=16 and Y-DY1(M)=16 Then Bob 37+M,,,31
  544.       XX=X : YY=Y
  545.       Gosub CHECKLAND
  546.       If Q=1 Then Bob 37+M,,,IMAGE : Goto TEST1
  547.       X=XX+OO : Y=YY : Gosub CHECKLAND
  548.       If Q=1 Then Bob 37+M,,,IMAGE : Goto TEST1
  549.       X=XX+OO : Y=YY+PP : Gosub CHECKLAND
  550.       If Q=1 Then Bob 37+M,,,IMAGE : Goto TEST1
  551.       X=XX : Y=YY+PP : Gosub CHECKLAND
  552.       If Q=1 Then Bob 37+M,,,IMAGE : Goto TEST1
  553.       X=XX : Y=YY
  554.       DX1(M)=X : DY1(M)=Y : Bob 37+M,DX1(M),DY1(M),
  555.       Set Zone 37+M,DX1(M),DY1(M) To DX1(M)+OO,DY1(M)+PP
  556.       M1(1+M)=1
  557. TILL:
  558.    Next M
  559.    Limit Mouse 115,50 To 443,295
  560.    Bob Off 64
  561. Return 
  562. P1PM:
  563.  For M=1 To 3
  564.    If PS1(M)<=0 Then Goto ILL
  565.    If M1(3+M)=1 Then Goto ILL
  566.    Bob 64,PX1(M),PY1(M),64
  567.    MM=Amreg(0) : QX=MM
  568.    If PX1(M)<(MM+25) or PX1(M)>(MM+290) Then QX=PX1(M)-150
  569.    If QX<0 Then QX=0
  570.    If QX>625 Then QX=625
  571.    Screen Offset 0,QX,0 : MM=QX
  572.    Limit Mouse((PX1(M)+96)-MM),PY1(M)+34 To((PX1(M)+136)-MM),PY1(M)+74
  573.    Repeat : Until Mouse Key=0
  574.    Repeat 
  575.    Until Mouse Key<>0
  576.    If Mouse Key=1 Then Goto ILL
  577.    Repeat : Until Mouse Key=0
  578.    TEST3:
  579.       Repeat 
  580.       Until Mouse Click<>0
  581.       X=((X Mouse-116)+MM) : Y=Y Mouse-54
  582.       If Y<0 Then Bell : Goto TEST3
  583.       If Y>230 Then Bell : Goto TEST3
  584.       A=Abs(X-PX1(M)) : B=Abs(Y-PY1(M))
  585.       OO=12 : PP=10 : IMAGE=I Bob(39+M)
  586.       If A>B and(X-PX1(M))<0 Then Bob 39+M,,,18 : OO=15 : PP=17
  587.       If A>B and(X-PX1(M))>0 Then Bob 39+M,,,17 : OO=15 : PP=17
  588.       If A<B and(Y-PY1(M))<0 Then Bob 39+M,,,20 : OO=8 : PP=13
  589.       If A<B and(Y-PY1(M))>0 Then Bob 39+M,,,19 : OO=8 : PP=13
  590.       If X-PX1(M)=-20 and Y-PY1(M)=-20 Then Bob 39+M,,,24
  591.       If X-PX1(M)=20 and Y-PY1(M)=-20 Then Bob 39+M,,,22
  592.       If X-PX1(M)=-20 and Y-PY1(M)=20 Then Bob 39+M,,,21
  593.       If X-PX1(M)=20 and Y-PY1(M)=20 Then Bob 39+M,,,23
  594.       XX=X : YY=Y
  595.       Gosub CHECKLAND
  596.       If Q=1 Then Bob 39+M,,,IMAGE : Goto TEST3
  597.       X=XX+OO : Y=YY : Gosub CHECKLAND
  598.       If Q=1 Then Bob 39+M,,,IMAGE : Goto TEST3
  599.       X=XX+OO : Y=YY+PP : Gosub CHECKLAND
  600.       If Q=1 Then Bob 39+M,,,IMAGE : Goto TEST3
  601.       X=XX : Y=YY+PP : Gosub CHECKLAND
  602.       If Q=1 Then Bob 39+M,,,IMAGE : Goto TEST3
  603.       X=XX : Y=YY
  604.       PX1(M)=X : PY1(M)=Y : Bob 39+M,PX1(M),PY1(M),
  605.       Set Zone 39+M,PX1(M),PY1(M) To PX1(M)+OO,PY1(M)+PP
  606.       M1(3+M)=1
  607. ILL:
  608.  Next M
  609.    Limit Mouse 115,50 To 443,295
  610.    Bob Off 64
  611. Return 
  612. Rem launch short range fighter 
  613. P1SL:
  614.    If CS1<=0 Then Bell : Return 
  615.    MM=Amreg(0) : QX=MM
  616.    If CX1<(MM+20) or CX1>(MM+295) Then QX=CX1-150
  617.    If QX<0 Then QX=0
  618.    If QX>625 Then QX=625
  619.    Screen Offset 0,QX,0 : MM=QX
  620.    Limit Mouse((CX1+106)-MM),CY1+40 To((CX1+146)-MM),CY1+75
  621.    If A1(1)=1 or A1(1)=-1 Then Goto P1SL1
  622.    Repeat 
  623.    Until Mouse Key<>0
  624.    AX1(1)=((X Mouse-116)+MM) : AY1(1)=Y Mouse-54
  625.    Bob 1,AX1(1),AY1(1),1
  626.    Set Zone 1,AX1(1),AY1(1) To AX1(1)+8,AY1(1)+5
  627.    Limit Mouse 115,50 To 443,295
  628.    A1(1)=1
  629.    AF1(1)=10
  630. Return 
  631. P1SL1:
  632.    If A1(2)=1 or A1(2)=-1 Then Goto P1SL2
  633.    Repeat 
  634.    Until Mouse Key<>0
  635.    AX1(2)=((X Mouse-116)+MM) : AY1(2)=Y Mouse-54
  636.    Bob 2,AX1(2),AY1(2),1
  637.    Set Zone 2,AX1(2),AY1(2) To AX1(2)+8,AY1(2)+5
  638.    Limit Mouse 115,50 To 443,295
  639.    A1(2)=1
  640.    AF1(2)=10
  641. Return 
  642. P1SL2:
  643.    If A1(3)=1 or A1(3)=-1 Then Goto P1SL3
  644.    Repeat 
  645.    Until Mouse Key<>0
  646.    AX1(3)=((X Mouse-116)+MM) : AY1(3)=Y Mouse-54
  647.    Bob 3,AX1(3),AY1(3),1
  648.    Set Zone 3,AX1(3),AY1(3) To AX1(3)+8,AY1(3)+5
  649.    Limit Mouse 115,50 To 443,295
  650.    A1(3)=1
  651.    AF1(3)=10
  652. Return 
  653. P1SL3:
  654.    If A1(4)=1 or A1(4)=-1 Then Goto P1SL4
  655.    Repeat 
  656.    Until Mouse Key<>0
  657.    AX1(4)=((X Mouse-116)+MM) : AY1(4)=Y Mouse-54
  658.    Bob 4,AX1(4),AY1(4),1
  659.    Set Zone 4,AX1(4),AY1(4) To AX1(4)+8,AY1(4)+5
  660.    Limit Mouse 115,50 To 443,295
  661.    A1(4)=1
  662.    AF1(4)=10
  663. Return 
  664. P1SL4:
  665.    If A1(5)=1 or A1(5)=-1 Then Bell : Limit Mouse 115,50 To 443,295 : Return 
  666.    Repeat 
  667.    Until Mouse Key<>0
  668.    AX1(5)=((X Mouse-116)+MM) : AY1(5)=Y Mouse-54
  669.    Bob 5,AX1(5),AY1(5),1
  670.    Set Zone 5,AX1(5),AY1(5) To AX1(5)+8,AY1(5)+5
  671.    Limit Mouse 115,50 To 443,295
  672.    A1(5)=1
  673.    AF1(5)=10
  674. Return 
  675. P1LL:
  676.    If GS1<=0 Then Bell : Return 
  677.    Screen Offset 0,0,0
  678.    Limit Mouse AAX1+110,AAY1+40 To AAX1+175,AAY1+75
  679.    If B1(1)=1 or BS1(1)<=0 Then Goto P1LL1
  680.    Repeat 
  681.    Until Mouse Key<>0
  682.    BX1(1)=X Mouse-116 : BY1(1)=Y Mouse-54
  683.    Bob 6,BX1(1),BY1(1),10
  684.    Set Zone 6,BX1(1),BY1(1) To BX1(1)+10,BY1(1)+8
  685.    Limit Mouse 115,50 To 443,295
  686.    B1(1)=1
  687.    BF1(1)=20
  688. Return 
  689. P1LL1:
  690.    If B1(2)=1 or BS1(2)<=0 Then Goto P1LL2
  691.    Repeat 
  692.    Until Mouse Key<>0
  693.    BX1(2)=X Mouse-116 : BY1(2)=Y Mouse-54
  694.    Bob 7,BX1(2),BY1(2),10
  695.    Set Zone 7,BX1(2),BY1(2) To BX1(2)+10,BY1(2)+8
  696.    Limit Mouse 115,50 To 443,295
  697.    B1(2)=1
  698.    BF1(2)=20
  699. Return 
  700. P1LL2:
  701.    If B1(3)=1 or BS1(3)<=0 Then Goto P1LL3
  702.    Repeat 
  703.    Until Mouse Key<>0
  704.    BX1(3)=X Mouse-116 : BY1(3)=Y Mouse-54
  705.    Bob 8,BX1(3),BY1(3),10
  706.    Set Zone 8,BX1(3),BY1(3) To BX1(3)+10,BY1(3)+8
  707.    Limit Mouse 115,50 To 443,295
  708.    B1(3)=1 : BF1(3)=20
  709. Return 
  710. P1LL3:
  711.    If B1(4)=1 or BS1(4)<=0 Then Goto P1LL4
  712.    Repeat 
  713.    Until Mouse Key<>0
  714.    BX1(4)=X Mouse-116 : BY1(4)=Y Mouse-54
  715.    Bob 9,BX1(4),BY1(4),10
  716.    Set Zone 9,BX1(4),BY1(4) To BX1(4)+10,BY1(4)+8
  717.    Limit Mouse 115,50 To 443,295
  718.    B1(4)=1 : BF1(4)=20
  719. Return 
  720. P1LL4:
  721.    If B1(5)=1 or BS1(5)<=0 Then Goto P1LL5
  722.    Repeat 
  723.    Until Mouse Key<>0
  724.    BX1(5)=X Mouse-116 : BY1(5)=Y Mouse-54
  725.    Bob 10,BX1(5),BY1(5),10
  726.    Set Zone 10,BX1(5),BY1(5) To BX1(5)+10,BY1(5)+8
  727.    Limit Mouse 115,50 To 443,295
  728.    B1(5)=1 : BF1(5)=20
  729. Return 
  730. P1LL5:
  731.    If B1(6)=1 or BS1(6)<=0 Then Goto P1LL6
  732.    Repeat 
  733.    Until Mouse Key<>0
  734.    BX1(6)=X Mouse-116 : BY1(6)=Y Mouse-54
  735.    Bob 11,BX1(6),BY1(6),10
  736.    Set Zone 11,BX1(6),BY1(6) To BX1(6)+10,BY1(6)+8
  737.    Limit Mouse 115,50 To 443,295
  738.    B1(6)=1 : BF1(6)=20
  739. Return 
  740. P1LL6:
  741.    If B1(7)=1 or BS1(7)<=0 Then Goto P1LL7
  742.    Repeat 
  743.    Until Mouse Key<>0
  744.    BX1(7)=X Mouse-116 : BY1(7)=Y Mouse-54
  745.    Bob 12,BX1(7),BY1(7),10
  746.    Set Zone 12,BX1(7),BY1(7) To BX1(7)+10,BY1(7)+8
  747.    Limit Mouse 115,50 To 443,295
  748.    B1(7)=1 : BF1(7)=20
  749. Return 
  750. P1LL7:
  751.    If B1(8)=1 or BS1(8)<=0 Then Bell : Limit Mouse 115,50 To 443,295 : Return 
  752.    Repeat 
  753.    Until Mouse Key<>0
  754.    BX1(8)=X Mouse-116 : BY1(8)=Y Mouse-54
  755.    Bob 13,BX1(8),BY1(8),10
  756.    Set Zone 13,BX1(8),BY1(8) To BX1(8)+10,BY1(8)+8
  757.    Limit Mouse 115,50 To 443,295
  758.    B1(8)=1 : BF1(8)=20
  759. Return 
  760. Rem move player 1 short fighter  
  761. P1SM:
  762.  For M=1 To 5
  763.    If A1(M)<>1 Then Goto ILL2
  764.    If M1(6+M)=1 Then Goto ILL2
  765.    Bob 64,AX1(M),AY1(M),64
  766.    MM=Amreg(0) : QX=MM
  767.    If AX1(M)<(MM+25) or AX1(M)>(MM+290) Then QX=AX1(M)-150
  768.    If QX<0 Then QX=0
  769.    If QX>625 Then QX=625
  770.    Screen Offset 0,QX,0 : MM=QX
  771.    Limit Mouse((AX1(M)+96)-MM),AY1(M)+34 To((AX1(M)+136)-MM),AY1(M)+74
  772.    Repeat : Until Mouse Key=0
  773.    Repeat 
  774.    Until Mouse Key<>0
  775.    If Mouse Key=1 Then Goto ILL2
  776.    Repeat : Until Mouse Key=0
  777.    TEST5:
  778.       Repeat 
  779.       Until Mouse Click<>0
  780.       X=((X Mouse-116)+MM) : Y=Y Mouse-54
  781.       If Y<0 Then Bell : Goto TEST5
  782.       If Y>240 Then Bell : Goto TEST5
  783.       A=Abs(X-AX1(M)) : B=Abs(Y-AY1(M))
  784.       If A>B and(X-AX1(M))<0 Then Bob 0+M,,,2
  785.       If A>B and(X-AX1(M))>0 Then Bob 0+M,,,1
  786.       If A<B and(Y-AY1(M))<0 Then Bob 0+M,,,3
  787.       If A<B and(Y-AY1(M))>0 Then Bob 0+M,,,4
  788.       If X-AX1(M)=-20 and Y-AY1(M)=-20 Then Bob 0+M,,,6
  789.       If X-AX1(M)=20 and Y-AY1(M)=-20 Then Bob 0+M,,,5
  790.       If X-AX1(M)=-20 and Y-AY1(M)=20 Then Bob 0+M,,,8
  791.       If X-AX1(M)=20 and Y-AY1(M)=20 Then Bob 0+M,,,7
  792.       AX1(M)=X : AY1(M)=Y : Bob 0+M,AX1(M),AY1(M),
  793.       Set Zone 0+M,AX1(M),AY1(M) To AX1(M)+8,AY1(M)+5
  794.       M1(6+M)=1
  795. ILL2:
  796.  Next M
  797.    Limit Mouse 115,50 To 443,295
  798.    Bob Off 64
  799. Return 
  800. Rem move player 1 long fighters  
  801. P1LM:
  802.  For M=1 To 8
  803.    If B1(M)<>1 or BS1(M)<=0 Then Goto ILL3
  804.    If M1(11+M)=1 Then Goto ILL3
  805.    Bob 64,BX1(M),BY1(M),64
  806.    MM=Amreg(0) : QX=MM
  807.    If BX1(M)<(MM+30) or BX1(M)>(MM+285) Then QX=BX1(M)-150
  808.    If QX<0 Then QX=0
  809.    If QX>625 Then QX=625
  810.    Screen Offset 0,QX,0 : MM=QX
  811.    Limit Mouse((BX1(M)+92)-MM),BY1(M)+30 To((BX1(M)+140)-MM),BY1(M)+78
  812.    Repeat : Until Mouse Key=0
  813.    Repeat 
  814.    Until Mouse Key<>0
  815.    If Mouse Key=1 Then Goto ILL3
  816.    Repeat : Until Mouse Key=0
  817.    TEST6:
  818.       Repeat 
  819.       Until Mouse Click<>0
  820.       X=((X Mouse-116)+MM) : Y=Y Mouse-54
  821.       If Y<0 Then Bell : Goto TEST6
  822.       If Y>240 Then Bell : Goto TEST6
  823.       A=Abs(X-BX1(M)) : B=Abs(Y-BY1(M))
  824.       If A>B and(X-BX1(M))<0 Then Bob 5+M,,,12
  825.       If A>B and(X-BX1(M))>0 Then Bob 5+M,,,10
  826.       If A<B and(Y-BY1(M))<0 Then Bob 5+M,,,9
  827.       If A<B and(Y-BY1(M))>0 Then Bob 5+M,,,11
  828.       If X-BX1(M)=-24 and Y-BY1(M)=-24 Then Bob 5+M,,,15
  829.       If X-BX1(M)=24 and Y-BY1(M)=-24 Then Bob 5+M,,,16
  830.       If X-BX1(M)=-24 and Y-BY1(M)=24 Then Bob 5+M,,,13
  831.       If X-BX1(M)=24 and Y-BY1(M)=24 Then Bob 5+M,,,14
  832.       BX1(M)=X : BY1(M)=Y : Bob 5+M,BX1(M),BY1(M),
  833.       Set Zone 5+M,BX1(M),BY1(M) To BX1(M)+10,BY1(M)+8
  834.       M1(11+M)=1
  835. ILL3:
  836.  Next M
  837.    Limit Mouse 115,50 To 443,295
  838.    Bob Off 64
  839. Return 
  840. Rem fire routine 
  841. PFIRE1:
  842. X=X-Amreg(0)
  843. PFIRE11:
  844.    Repeat 
  845.    Until Mouse Key=0
  846.    Sprite 1,X,Y,48
  847.    For A=X To X+R
  848.       Sprite 1,A,Y,
  849.       For T=1 To 100 : Next T
  850.       If Mouse Key<>0 Then XX=A+2 : Sprite Off : Goto PFIRE2
  851.    Next A
  852.    For A=X+R To X Step -1
  853.       Sprite 1,A,Y,
  854.       For T=1 To 100 : Next T
  855.       If Mouse Key<>0 Then XX=A+2 : Sprite Off : Goto PFIRE2
  856.    Next A
  857. Goto PFIRE11
  858. Return 
  859. PFIRE2:
  860.    Repeat 
  861.    Until Mouse Key=0
  862. PFIRE3:
  863.    Sprite 1,XX-8,Y,49
  864.    For A=(Y-(R/2)) To(Y+(R/2))
  865.       Sprite 1,XX-8,A+7,
  866.       For T=1 To 100 : Next T
  867.       If Mouse Key<>0 Then YY=A+7 : Sprite 1,XX,YY,55 : Shoot : Return 
  868.    Next A
  869.    For A=(Y+(R/2)) To(Y-(R/2)) Step -1
  870.       Sprite 1,XX-8,A+7,
  871.       For T=1 To 100 : Next T
  872.       If Mouse Key<>0 Then YY=A+7 : Sprite 1,XX,YY,55 : Shoot : Return 
  873.    Next A
  874. Goto PFIRE3
  875. P1FF:
  876.    Screen Offset 0,0,0
  877.    For M=1 To 4
  878.    If M1(19+M)=1 Then Goto P1FE
  879.    If FS1(M)<=0 Then Goto P1FE
  880.    Bob 64,FX1(M),FY1(M),64
  881.    Repeat : Until Mouse Key=0
  882.    Repeat 
  883.    Until Mouse Key<>0
  884.    If Mouse Key=1 Then Goto P1FE
  885.    Repeat : Until Mouse Key=0
  886.    X=FX1(M)+124 : Y=FY1(M)+47 : R=40
  887.    M1(19+M)=1
  888.    Repeat 
  889.    Until Mouse Key=0
  890.    STR=1
  891.    Gosub PFIRE1 : Gosub P1FCHIT
  892. P1FE:
  893.    Next M
  894.    Bob Off 64
  895. Return 
  896. P1LCF:
  897.    Screen Offset 0,0,0
  898.    For M=1 To 2
  899.    If M1(23+M)=1 Then Goto P1LFE
  900.    If LS1(M)<=0 Then Goto P1LFE
  901.    Bob 64,LX1(M),LY1(M),64
  902.    Repeat : Until Mouse Key=0
  903.    Repeat 
  904.    Until Mouse Key<>0
  905.    If Mouse Key=1 Then Goto P1LFE
  906.    Repeat : Until Mouse Key=0
  907.    X=LX1(M)+130 : Y=LY1(M)+47 : R=60
  908.    M1(23+M)=1
  909.    Repeat 
  910.    Until Mouse Key=0
  911.    STR=2
  912.    Gosub PFIRE1 : Gosub P1FCHIT
  913. P1LFE:
  914.    Next M
  915.    Bob Off 64
  916. Return 
  917. P1SCF:
  918.    Screen Offset 0,0,0
  919.    For M=1 To 2
  920.    If M1(25+M)=1 Then Goto P1LSE
  921.    If SS1(M)<=0 Then Goto P1LSE
  922.    Bob 64,SX1(M),SY1(M),64
  923.    Repeat : Until Mouse Key=0
  924.    Repeat 
  925.    Until Mouse Key<>0
  926.    If Mouse Key=1 Then Goto P1LSE
  927.    Repeat : Until Mouse Key=0
  928.    X=SX1(M)+80 : Y=SY1(M)+47 : R=80
  929.    M1(25+M)=1
  930.    Repeat 
  931.    Until Mouse Key=0
  932.    STR=2
  933.    Gosub PFIRE1 : Gosub P1FCHIT
  934. P1LSE:
  935.    Next M
  936.    Bob Off 64
  937. Return 
  938. P1PF:
  939.    For M=1 To 3
  940.    If M1(3+M)=1 Then Goto P1PFE
  941.    If PS1(M)<=0 Then Goto P1PFE
  942.    Bob 64,PX1(M),PY1(M),64
  943.    MM=Amreg(0) : QX=MM
  944.    If PX1(M)<(MM+20) or PX1(M)>(MM+295) Then QX=PX1(M)-150
  945.    If QX<0 Then QX=0
  946.    If QX>625 Then QX=625
  947.    Screen Offset 0,QX,0 : MM=QX
  948.    Repeat : Until Mouse Key=0
  949.    Repeat 
  950.    Until Mouse Key<>0
  951.    If Mouse Key=1 Then Goto P1PFE
  952.    Repeat : Until Mouse Key=0
  953.    M1(3+M)=1
  954.    If I Bob(39+M)=17 Then X=PX1(M)+124 : Y=PY1(M)+47
  955.    If I Bob(39+M)=18 Then X=PX1(M)+66 : Y=PY1(M)+47
  956.    If I Bob(39+M)=20 Then X=PX1(M)+93 : Y=PY1(M)+15
  957.    If I Bob(39+M)=19 Then X=PX1(M)+93 : Y=PY1(M)+80
  958.    If I Bob(39+M)=24 Then X=PX1(M)+80 : Y=PY1(M)+35
  959.    If I Bob(39+M)=21 Then X=PX1(M)+80 : Y=PY1(M)+74
  960.    If I Bob(39+M)=22 Then X=PX1(M)+110 : Y=PY1(M)+35
  961.    If I Bob(39+M)=23 Then X=PX1(M)+110 : Y=PY1(M)+74
  962.    R=50 : STR=1
  963.    Gosub PFIRE1 : Gosub P1FCHIT
  964. P1PFE:
  965.    Next M
  966.    Bob Off 64
  967. Return 
  968. P1LF:
  969.    For M=1 To 8
  970.    If B1(M)<>1 or BS1(M)<=0 Then Goto P1LFEN
  971.    If M1(11+M)=1 Then Goto P1LFEN
  972.    Bob 64,BX1(M),BY1(M),64
  973.    MM=Amreg(0) : QX=MM
  974.    If BX1(M)<(MM+20) or BX1(M)>(MM+295) Then QX=BX1(M)-150
  975.    If QX<0 Then QX=0
  976.    If QX>625 Then QX=625
  977.    Screen Offset 0,QX,0 : MM=QX
  978.    Repeat : Until Mouse Key=0
  979.    Repeat 
  980.    Until Mouse Key<>0
  981.    If Mouse Key=1 Then Goto P1LFEN
  982.    Repeat : Until Mouse Key=0
  983.    M1(11+M)=1
  984.    If I Bob(5+M)=10 Then X=BX1(M)+124 : Y=BY1(M)+47
  985.    If I Bob(5+M)=12 Then X=BX1(M)+66 : Y=BY1(M)+47
  986.    If I Bob(5+M)=9 Then X=BX1(M)+93 : Y=BY1(M)+15
  987.    If I Bob(5+M)=11 Then X=BX1(M)+93 : Y=BY1(M)+80
  988.    If I Bob(5+M)=15 Then X=BX1(M)+80 : Y=BY1(M)+35
  989.    If I Bob(5+M)=13 Then X=BX1(M)+80 : Y=BY1(M)+74
  990.    If I Bob(5+M)=16 Then X=BX1(M)+110 : Y=BY1(M)+35
  991.    If I Bob(5+M)=14 Then X=BX1(M)+110 : Y=BY1(M)+74
  992.    R=50 : STR=1
  993.    Gosub PFIRE1 : Gosub P1FCHIT
  994. P1LFEN:
  995.    Next M
  996.    Bob Off 64
  997. Return 
  998. P1SF:
  999.    For M=1 To 5
  1000.    If A1(M)<>1 Then Goto P1SFEN
  1001.    If M1(6+M)=1 Then Goto P1SFEN
  1002.    Bob 64,AX1(M),AY1(M),64
  1003.    MM=Amreg(0) : QX=MM
  1004.    If AX1(M)<(MM+20) or AX1(M)>(MM+295) Then QX=AX1(M)-150
  1005.    If QX<0 Then QX=0
  1006.    If QX>625 Then QX=625
  1007.    Screen Offset 0,QX,0 : MM=QX
  1008.    Repeat : Until Mouse Key=0
  1009.    Repeat 
  1010.    Until Mouse Key<>0
  1011.    If Mouse Key=1 Then Goto P1SFEN
  1012.    Repeat : Until Mouse Key=0
  1013.    M1(6+M)=1
  1014.    If I Bob(M)=1 Then X=AX1(M)+120 : Y=AY1(M)+47
  1015.    If I Bob(M)=2 Then X=AX1(M)+76 : Y=AY1(M)+47
  1016.    If I Bob(M)=3 Then X=AX1(M)+93 : Y=AY1(M)+25
  1017.    If I Bob(M)=4 Then X=AX1(M)+93 : Y=AY1(M)+70
  1018.    If I Bob(M)=6 Then X=AX1(M)+80 : Y=AY1(M)+35
  1019.    If I Bob(M)=8 Then X=AX1(M)+80 : Y=AY1(M)+74
  1020.    If I Bob(M)=5 Then X=AX1(M)+110 : Y=AY1(M)+35
  1021.    If I Bob(M)=7 Then X=AX1(M)+110 : Y=AY1(M)+64
  1022.    R=40 : STR=1
  1023.    Gosub PFIRE1 : Gosub P1FCHIT
  1024. P1SFEN:
  1025.    Next M
  1026.    Bob Off 64
  1027. Return 
  1028. P1CF:
  1029.    If CS1<=0 Then Bell : Return 
  1030.    If M1(1)=1 Then Bell : Return 
  1031.    Bob 64,CX1,CY1,64
  1032.    MM=Amreg(0) : QX=MM
  1033.    If CX1<(MM+20) or CX1>(MM+295) Then QX=CX1-150
  1034.    If QX<0 Then QX=0
  1035.    If QX>625 Then QX=625
  1036.    Screen Offset 0,QX,0 : MM=QX
  1037.    M1(1)=1
  1038.    If I Bob(37)=42 or I Bob(37)=43 Then Goto P1CHF
  1039.    If I Bob(37)=44 or I Bob(37)=45 Then Goto P1CVF
  1040. Return 
  1041. P1CHF:
  1042.    Bob 64,CX1-20,CY1,
  1043.    STR=2
  1044.    If I Bob(37)=42 Then STR=3
  1045.    Repeat 
  1046.    Until Mouse Key<>0
  1047.    If Mouse Key=2 Then X=CX1+46 : Y=CY1+52 : R=70 : Gosub PFIRE1 : Gosub P1FCHIT : Bob Off 64 : Return 
  1048.    Repeat 
  1049.    Until Mouse Key=0
  1050.    Bob 64,CX1+15,CY1-15,
  1051.    STR=1
  1052.    Repeat 
  1053.    Until Mouse Key<>0
  1054.    If Mouse Key=2 Then X=CX1+110 : Y=CY1+20 : R=50 : Gosub PFIRE1 : Gosub P1FCHIT : Bob Off 64 : Return 
  1055.    Repeat 
  1056.    Until Mouse Key=0
  1057.    Bob 64,CX1+45,CY1,
  1058.    STR=2
  1059.    If I Bob(37)=43 Then STR=3
  1060.    Repeat 
  1061.    Until Mouse Key<>0
  1062.    If Mouse Key=2 Then X=CX1+145 : Y=CY1+50 : R=70 : Gosub PFIRE1 : Gosub P1FCHIT : Bob Off 64 : Return 
  1063.    Repeat 
  1064.    Until Mouse Key=0
  1065.    Bob 64,CX1+15,CY1+20,
  1066.    STR=1
  1067.    Repeat 
  1068.    Until Mouse Key<>0
  1069.    If Mouse Key=2 Then X=CX1+110 : Y=CY1+75 : R=50 : Gosub PFIRE1 : Gosub P1FCHIT : Bob Off 64 : Return 
  1070.    Repeat 
  1071.    Until Mouse Key=0
  1072. Goto P1CHF
  1073. P1CVF:
  1074.    Bob 64,CX1-10,CY1+15,
  1075.    STR=1
  1076.    Repeat 
  1077.    Until Mouse Key<>0
  1078.    If Mouse Key=2 Then X=CX1+66 : Y=CY1+60 : R=50 : Gosub PFIRE1 : Gosub P1FCHIT : Bob Off 64 : Return 
  1079.    Repeat 
  1080.    Until Mouse Key=0
  1081.    Bob 64,CX1+2,CY1-15,
  1082.    STR=2
  1083.    If I Bob(37)=45 Then STR=3
  1084.    Repeat 
  1085.    Until Mouse Key<>0
  1086.    If Mouse Key=2 Then X=CX1+85 : Y=CY1+10 : R=70 : Gosub PFIRE1 : Gosub P1FCHIT : Bob Off 64 : Return 
  1087.    Repeat 
  1088.    Until Mouse Key=0
  1089.    Bob 64,CX1+20,CY1+15,
  1090.    STR=1
  1091.    Repeat 
  1092.    Until Mouse Key<>0
  1093.    If Mouse Key=2 Then X=CX1+120 : Y=CY1+60 : R=50 : Gosub PFIRE1 : Gosub P1FCHIT : Bob Off 64 : Return 
  1094.    Repeat 
  1095.    Until Mouse Key=0
  1096.    Bob 64,CX1+2,CY1+40,
  1097.    STR=2
  1098.    If I Bob(37)=44 Then STR=3
  1099.    Repeat 
  1100.    Until Mouse Key<>0
  1101.    If Mouse Key=2 Then X=CX1+80 : Y=CY1+110 : R=70 : Gosub PFIRE1 : Gosub P1FCHIT : Bob Off 64 : Return 
  1102.    Repeat 
  1103.    Until Mouse Key=0
  1104. Goto P1CVF
  1105. Return 
  1106. P1DF:
  1107.    For M=1 To 2
  1108.    If DS1(M)<=0 Then Goto P1DFE
  1109.    If M1(1+M)=1 Then Goto P1DFE
  1110.    Bob 64,DX1(M),DY1(M),64
  1111.    MM=Amreg(0) : QX=MM
  1112.    If DX1(M)<(MM+20) or DX1(M)>(MM+295) Then QX=DX1(M)-150
  1113.    If QX<0 Then QX=0
  1114.    If QX>625 Then QX=625
  1115.    Screen Offset 0,QX,0 : MM=QX
  1116.    Repeat : Until Mouse Key=0
  1117.    Repeat 
  1118.    Until Mouse Key<>0
  1119.    If Mouse Key=1 Then Goto P1DFE
  1120.    Repeat : Until Mouse Key=0
  1121.    M1(1+M)=1
  1122.    If I Bob(37+M)=25 or I Bob(37+M)=26 Then Gosub P1DHF
  1123.    If I Bob(37+M)=27 or I Bob(37+M)=28 Then Gosub P1DVF
  1124.    If I Bob(37+M)=29 or I Bob(37+M)=30 Then Gosub P1DRF
  1125.    If I Bob(37+M)=31 or I Bob(37+M)=32 Then Gosub P1DLF
  1126. P1DFE:
  1127.    Next M
  1128.    Bob Off 64
  1129. Return 
  1130. P1DHF:
  1131.    Bob 64,DX1(M)-10,DY1(M),
  1132.    STR=1
  1133.    If I Bob(37+M)=25 Then STR=2
  1134.    Repeat 
  1135.    Until Mouse Key<>0
  1136.    If Mouse Key=2 Then X=DX1(M)+65 : Y=DY1(M)+46 : R=50 : Gosub PFIRE1 : Gosub P1FCHIT : Return 
  1137.    Repeat 
  1138.    Until Mouse Key=0
  1139.    Bob 64,DX1(M)+10,DY1(M)-10,
  1140.    STR=1
  1141.    Repeat 
  1142.    Until Mouse Key<>0
  1143.    If Mouse Key=2 Then X=DX1(M)+102 : Y=DY1(M)+16 : R=50 : Gosub PFIRE1 : Gosub P1FCHIT : Return 
  1144.    Repeat 
  1145.    Until Mouse Key=0
  1146.    Bob 64,DX1(M)+35,DY1(M),
  1147.    STR=1
  1148.    If I Bob(37+M)=26 Then STR=2
  1149.    Repeat 
  1150.    Until Mouse Key<>0
  1151.    If Mouse Key=2 Then X=DX1(M)+138 : Y=DY1(M)+46 : R=50 : Gosub PFIRE1 : Gosub P1FCHIT : Return 
  1152.    Repeat 
  1153.    Until Mouse Key=0
  1154.    Bob 64,DX1(M)+10,DY1(M)+12,
  1155.    STR=1
  1156.    Repeat 
  1157.    Until Mouse Key<>0
  1158.    If Mouse Key=2 Then X=DX1(M)+102 : Y=DY1(M)+75 : R=50 : Gosub PFIRE1 : Gosub P1FCHIT : Return 
  1159.    Repeat 
  1160.    Until Mouse Key=0
  1161. Goto P1DHF
  1162. P1DVF:
  1163.    Bob 64,DX1(M)-10,DY1(M)+10,
  1164.    STR=1
  1165.    Repeat 
  1166.    Until Mouse Key<>0
  1167.    If Mouse Key=2 Then X=DX1(M)+66 : Y=DY1(M)+55 : R=50 : Gosub PFIRE1 : Gosub P1FCHIT : Return 
  1168.    Repeat 
  1169.    Until Mouse Key=0
  1170.    Bob 64,DX1(M)+2,DY1(M)-10,
  1171.    STR=1
  1172.    If I Bob(37+M)=27 Then STR=2
  1173.    Repeat 
  1174.    Until Mouse Key<>0
  1175.    If Mouse Key=2 Then X=DX1(M)+90 : Y=DY1(M)+15 : R=50 : Gosub PFIRE1 : Gosub P1FCHIT : Return 
  1176.    Repeat 
  1177.    Until Mouse Key=0
  1178.    Bob 64,DX1(M)+12,DY1(M)+10,
  1179.    STR=1
  1180.    Repeat 
  1181.    Until Mouse Key<>0
  1182.    If Mouse Key=2 Then X=DX1(M)+120 : Y=DY1(M)+60 : R=50 : Gosub PFIRE1 : Gosub P1FCHIT : Return 
  1183.    Repeat 
  1184.    Until Mouse Key=0
  1185.    Bob 64,DX1(M)+2,DY1(M)+30,
  1186.    STR=1
  1187.    If I Bob(37+M)=28 Then STR=2
  1188.    Repeat 
  1189.    Until Mouse Key<>0
  1190.    If Mouse Key=2 Then X=DX1(M)+90 : Y=DY1(M)+100 : R=50 : Gosub PFIRE1 : Gosub P1FCHIT : Return 
  1191.    Repeat 
  1192.    Until Mouse Key=0
  1193. Goto P1DVF
  1194. Return 
  1195. P1DRF:
  1196.    Bob 64,DX1(M)-2,DY1(M),
  1197.    STR=1
  1198.    Repeat 
  1199.    Until Mouse Key<>0
  1200.    If Mouse Key=2 Then X=DX1(M)+75 : Y=DY1(M)+35 : R=50 : Gosub PFIRE1 : Gosub P1FCHIT : Return 
  1201.    Repeat 
  1202.    Until Mouse Key=0
  1203.    Bob 64,DX1(M)+22,DY1(M)-10,
  1204.    STR=1
  1205.    If I Bob(37+M)=30 Then STR=2
  1206.    Repeat 
  1207.    Until Mouse Key<>0
  1208.    If Mouse Key=2 Then X=DX1(M)+115 : Y=DY1(M)+25 : R=50 : Gosub PFIRE1 : Gosub P1FCHIT : Return 
  1209.    Repeat 
  1210.    Until Mouse Key=0
  1211.    Bob 64,DX1(M)+14,DY1(M)+12,
  1212.    STR=1
  1213.    Repeat 
  1214.    Until Mouse Key<>0
  1215.    If Mouse Key=2 Then X=DX1(M)+110 : Y=DY1(M)+65 : R=50 : Gosub PFIRE1 : Gosub P1FCHIT : Return 
  1216.    Repeat 
  1217.    Until Mouse Key=0
  1218.    Bob 64,DX1(M)-8,DY1(M)+20,
  1219.    STR=1
  1220.    If I Bob(37+M)=29 Then STR=2
  1221.    Repeat 
  1222.    Until Mouse Key<>0
  1223.    If Mouse Key=2 Then X=DX1(M)+80 : Y=DY1(M)+80 : R=50 : Gosub PFIRE1 : Gosub P1FCHIT : Return 
  1224.    Repeat 
  1225.    Until Mouse Key=0
  1226. Goto P1DRF
  1227. Return 
  1228. P1DLF:
  1229.    Bob 64,DX1(M),DY1(M)+12,
  1230.    STR=1
  1231.    Repeat 
  1232.    Until Mouse Key<>0
  1233.    If Mouse Key=2 Then X=DX1(M)+85 : Y=DY1(M)+60 : R=50 : Gosub PFIRE1 : Gosub P1FCHIT : Return 
  1234.    Repeat 
  1235.    Until Mouse Key=0
  1236.    Bob 64,DX1(M)-10,DY1(M)-10,
  1237.    STR=1
  1238.    If I Bob(37+M)=32 Then STR=2
  1239.    Repeat 
  1240.    Until Mouse Key<>0
  1241.    If Mouse Key=2 Then X=DX1(M)+80 : Y=DY1(M)+25 : R=50 : Gosub PFIRE1 : Gosub P1FCHIT : Return 
  1242.    Repeat 
  1243.    Until Mouse Key=0
  1244.    Bob 64,DX1(M)+19,DY1(M)+2,
  1245.    STR=1
  1246.    Repeat 
  1247.    Until Mouse Key<>0
  1248.    If Mouse Key=2 Then X=DX1(M)+110 : Y=DY1(M)+40 : R=50 : Gosub PFIRE1 : Gosub P1FCHIT : Return 
  1249.    Repeat 
  1250.    Until Mouse Key=0
  1251.    Bob 64,DX1(M)+22,DY1(M)+20,
  1252.    STR=1
  1253.    If I Bob(37+M)=31 Then STR=2
  1254.    Repeat 
  1255.    Until Mouse Key<>0
  1256.    If Mouse Key=2 Then X=DX1(M)+115 : Y=DY1(M)+80 : R=50 : Gosub PFIRE1 : Gosub P1FCHIT : Return 
  1257.    Repeat 
  1258.    Until Mouse Key=0
  1259. Goto P1DLF
  1260. Return 
  1261. Rem move player 2 carrier
  1262. P2CM:
  1263.    If CS2<=0 Then Bell : Return 
  1264.    If M2(1)=1 Then Bell : Return 
  1265.    Bob 64,CX2,CY2,64
  1266.    MM=Amreg(0) : QX=MM
  1267.    If CX2<(MM+20) or CX2>(MM+295) Then QX=CX2-150
  1268.    If QX<0 Then QX=0
  1269.    If QX>625 Then QX=625
  1270.    Screen Offset 0,QX,0 : MM=QX
  1271.    Limit Mouse((CX2+104)-MM),CY2+42 To((CX2+128)-MM),CY2+66
  1272.    P2TEST:
  1273.       Repeat 
  1274.       Until Mouse Click<>0
  1275.       X=((X Mouse-116)+MM) : Y=Y Mouse-54
  1276.       If Y<0 Then Bell : Goto TEST
  1277.       If Y>230 Then Bell : Goto TEST
  1278.       A=Abs(X-CX2) : B=Abs(Y-CY2) : OO=36 : PP=11 : IMAGE=I Bob(53)
  1279.       If A>B and(X-CX2)<0 Then Bob 53,,,42
  1280.       If A>B and(X-CX2)>0 Then Bob 53,,,43
  1281.       If A<B and(Y-CY2)<0 Then Bob 53,,,45 : OO=14 : PP=37
  1282.       If A<B and(Y-CY2)>0 Then Bob 53,,,44 : OO=14 : PP=37
  1283.       XX=X : YY=Y
  1284.       Gosub CHECKLAND
  1285.       If Q=1 Then Bob 53,,,IMAGE : Goto P2TEST
  1286.       X=XX+OO : Y=YY : Gosub CHECKLAND
  1287.       If Q=1 Then Bob 53,,,IMAGE : Goto P2TEST
  1288.       X=XX+OO : Y=YY+PP : Gosub CHECKLAND
  1289.       If Q=1 Then Bob 53,,,IMAGE : Goto P2TEST
  1290.       X=XX : Y=YY+PP : Gosub CHECKLAND
  1291.       If Q=1 Then Bob 53,,,IMAGE : Goto P2TEST
  1292.       X=XX : Y=YY
  1293.       CX2=X : CY2=Y : Bob 53,CX2,CY2,
  1294.       Set Zone 53,CX2,CY2 To CX2+OO,CY2+PP
  1295.    Limit Mouse 115,50 To 443,295
  1296.    Bob Off 64
  1297.    M2(1)=1
  1298. Return 
  1299. Rem player 2 destroyer move
  1300. P2DM:
  1301.  For M=1 To 2
  1302.    If DS2(M)<=0 Then Goto P2TILL
  1303.    If M2(1+M)=1 Then Goto P2TILL
  1304.    Bob 64,DX2(M),DY2(M),64
  1305.    MM=Amreg(0) : QX=MM
  1306.    If DX2(M)<(MM+25) or DX2(M)>(MM+290) Then QX=DX2(M)-150
  1307.    If QX<0 Then QX=0
  1308.    If QX>625 Then QX=625
  1309.    Screen Offset 0,QX,0 : MM=QX
  1310.    Limit Mouse((DX2(M)+100)-MM),DY2(M)+38 To((DX2(M)+132)-MM),DY2(M)+70
  1311.    Repeat : Until Mouse Key=0
  1312.    Repeat 
  1313.    Until Mouse Key<>0
  1314.    If Mouse Key=1 Then Goto P2TILL
  1315.    Repeat : Until Mouse Key=0
  1316.    P2TEST1:
  1317.       Repeat 
  1318.       Until Mouse Click<>0
  1319.       X=((X Mouse-116)+MM) : Y=Y Mouse-54
  1320.       If Y<0 Then Bell : Goto P2TEST1
  1321.       If Y>230 Then Bell : Goto P2TEST1
  1322.       A=Abs(X-DX2(M)) : B=Abs(Y-DY2(M)) : OO=17 : PP=17 : IMAGE=I Bob(53+M)
  1323.       If A>B and(X-DX2(M))<0 Then Bob 53+M,,,25 : OO=15 : PP=7
  1324.       If A>B and(X-DX2(M))>0 Then Bob 53+M,,,26 : OO=15 : PP=7
  1325.       If A<B and(Y-DY2(M))<0 Then Bob 53+M,,,27 : OO=8 : PP=13
  1326.       If A<B and(Y-DY2(M))>0 Then Bob 53+M,,,28 : OO=8 : PP=13
  1327.       If X-DX2(M)=-16 and Y-DY2(M)=-16 Then Bob 53+M,,,32
  1328.       If X-DX2(M)=16 and Y-DY2(M)=-16 Then Bob 53+M,,,30
  1329.       If X-DX2(M)=-16 and Y-DY2(M)=16 Then Bob 53+M,,,29
  1330.       If X-DX2(M)=16 and Y-DY2(M)=16 Then Bob 53+M,,,31
  1331.       XX=X : YY=Y
  1332.       Gosub CHECKLAND
  1333.       If Q=1 Then Bob 53+M,,,IMAGE : Goto P2TEST1
  1334.       X=XX+OO : Y=YY : Gosub CHECKLAND
  1335.       If Q=1 Then Bob 53+M,,,IMAGE : Goto P2TEST1
  1336.       X=XX+OO : Y=YY+PP : Gosub CHECKLAND
  1337.       If Q=1 Then Bob 53+M,,,IMAGE : Goto P2TEST1
  1338.       X=XX : Y=YY+PP : Gosub CHECKLAND
  1339.       If Q=1 Then Bob 53+M,,,IMAGE : Goto P2TEST1
  1340.       X=XX : Y=YY
  1341.       DX2(M)=X : DY2(M)=Y : Bob 53+M,DX2(M),DY2(M),
  1342.       Set Zone 53+M,DX2(M),DY2(M) To DX2(M)+OO,DY2(M)+PP
  1343.       M2(1+M)=1
  1344. P2TILL:
  1345.    Next M
  1346.    Limit Mouse 115,50 To 443,295
  1347.    Bob Off 64
  1348. Return 
  1349. Rem player 2 patrol move 
  1350. P2PM:
  1351.  For M=1 To 3
  1352.    If PS2(M)<=0 Then Goto P2ILL
  1353.    If M2(3+M)=1 Then Goto P2ILL
  1354.    Bob 64,PX2(M),PY2(M),64
  1355.    MM=Amreg(0) : QX=MM
  1356.    If PX2(M)<(MM+25) or PX2(M)>(MM+290) Then QX=PX2(M)-150
  1357.    If QX<0 Then QX=0
  1358.    If QX>625 Then QX=625
  1359.    Screen Offset 0,QX,0 : MM=QX
  1360.    Limit Mouse((PX2(M)+96)-MM),PY2(M)+34 To((PX2(M)+136)-MM),PY2(M)+74
  1361.    Repeat : Until Mouse Key=0
  1362.    Repeat 
  1363.    Until Mouse Key<>0
  1364.    If Mouse Key=1 Then Goto P2ILL
  1365.    Repeat : Until Mouse Key=0
  1366.    P2TEST3:
  1367.       Repeat 
  1368.       Until Mouse Click<>0
  1369.       X=((X Mouse-116)+MM) : Y=Y Mouse-54
  1370.       If Y<0 Then Bell : Goto P2TEST3
  1371.       If Y>230 Then Bell : Goto P2TEST3
  1372.       A=Abs(X-PX1(M)) : B=Abs(Y-PY1(M))
  1373.       OO=12 : PP=10 : IMAGE=I Bob(55+M)
  1374.       If A>B and(X-PX2(M))<0 Then Bob 55+M,,,18 : OO=15 : PP=7
  1375.       If A>B and(X-PX2(M))>0 Then Bob 55+M,,,17 : OO=15 : PP=7
  1376.       If A<B and(Y-PY2(M))<0 Then Bob 55+M,,,20 : OO=8 : PP=14
  1377.       If A<B and(Y-PY2(M))>0 Then Bob 55+M,,,19 : OO=8 : PP=14
  1378.       If X-PX2(M)=-20 and Y-PY2(M)=-20 Then Bob 55+M,,,24
  1379.       If X-PX2(M)=20 and Y-PY2(M)=-20 Then Bob 55+M,,,22
  1380.       If X-PX2(M)=-20 and Y-PY2(M)=20 Then Bob 55+M,,,21
  1381.       If X-PX2(M)=20 and Y-PY2(M)=20 Then Bob 55+M,,,23
  1382.       XX=X : YY=Y
  1383.       Gosub CHECKLAND
  1384.       If Q=1 Then Bob 55+M,,,IMAGE : Goto P2TEST3
  1385.       X=XX+OO : Y=YY : Gosub CHECKLAND
  1386.       If Q=1 Then Bob 55+M,,,IMAGE : Goto P2TEST3
  1387.       X=XX+OO : Y=YY+PP : Gosub CHECKLAND
  1388.       If Q=1 Then Bob 55+M,,,IMAGE : Goto P2TEST3
  1389.       X=XX : Y=YY+PP : Gosub CHECKLAND
  1390.       If Q=1 Then Bob 55+M,,,IMAGE : Goto P2TEST3
  1391.       X=XX : Y=YY
  1392.       PX2(M)=X : PY2(M)=Y : Bob 55+M,PX2(M),PY2(M),
  1393.       Set Zone 55+M,PX2(M),PY2(M) To PX2(M)+OO,PY2(M)+PP
  1394.       M2(3+M)=1
  1395. P2ILL:
  1396.  Next M
  1397.    Limit Mouse 115,50 To 443,295
  1398.    Bob Off 64
  1399. Return 
  1400. Rem launch short range fighter player 2
  1401. P2SL:
  1402.    If CS2<=0 Then Bell : Return 
  1403.    MM=Amreg(0) : QX=MM
  1404.    If CX2<(MM+20) or CX2>(MM+295) Then QX=CX2-150
  1405.    If QX<0 Then QX=0
  1406.    If QX>625 Then QX=625
  1407.    Screen Offset 0,QX,0 : MM=QX
  1408.    Limit Mouse((CX2+106)-MM),CY2+40 To((CX2+146)-MM),CY2+75
  1409.    If A2(1)=1 or A2(1)=-1 Then Goto P2SL1
  1410.    Repeat 
  1411.    Until Mouse Key<>0
  1412.    AX2(1)=((X Mouse-116)+MM) : AY2(1)=Y Mouse-54
  1413.    Bob 14,AX2(1),AY2(1),2
  1414.    Set Zone 14,AX2(1),AY2(1) To AX2(1)+8,AY2(1)+5
  1415.    Limit Mouse 115,50 To 443,295
  1416.    A2(1)=1 : AF2(1)=10
  1417. Return 
  1418. P2SL1:
  1419.    If A2(2)=1 or A2(2)=-1 Then Goto P2SL2
  1420.    Repeat 
  1421.    Until Mouse Key<>0
  1422.    AX2(2)=((X Mouse-116)+MM) : AY2(2)=Y Mouse-54
  1423.    Bob 15,AX2(2),AY2(2),2
  1424.    Set Zone 15,AX2(2),AY2(2) To AX2(2)+8,AY2(2)+5
  1425.    Limit Mouse 115,50 To 443,295
  1426.    A2(2)=1 : AF2(2)=10
  1427. Return 
  1428. P2SL2:
  1429.    If A2(3)=1 or A2(3)=-1 Then Goto P2SL3
  1430.    Repeat 
  1431.    Until Mouse Key<>0
  1432.    AX2(3)=((X Mouse-116)+MM) : AY2(3)=Y Mouse-54
  1433.    Bob 16,AX2(3),AY2(3),2
  1434.    Set Zone 16,AX2(3),AY2(3) To AX2(3)+8,AY2(3)+5
  1435.    Limit Mouse 115,50 To 443,295
  1436.    A2(3)=1 : AF2(3)=10
  1437. Return 
  1438. P2SL3:
  1439.    If A2(4)=1 or A2(4)=-1 Then Goto P2SL4
  1440.    Repeat 
  1441.    Until Mouse Key<>0
  1442.    AX2(4)=((X Mouse-116)+MM) : AY2(4)=Y Mouse-54
  1443.    Bob 17,AX2(4),AY2(4),2
  1444.    Set Zone 17,AX2(4),AY2(4) To AX2(4)+8,AY2(4)+5
  1445.    Limit Mouse 115,50 To 443,295
  1446.    A2(4)=1 : AF2(4)=10
  1447. Return 
  1448. P2SL4:
  1449.    If A2(5)=1 or A2(5)=-1 Then Bell : Limit Mouse 115,50 To 443,295 : Return 
  1450.    Repeat 
  1451.    Until Mouse Key<>0
  1452.    AX2(5)=((X Mouse-116)+MM) : AY2(5)=Y Mouse-54
  1453.    Bob 18,AX2(5),AY2(5),2
  1454.    Set Zone 18,AX2(5),AY2(5) To AX2(5)+8,AY2(5)+5
  1455.    Limit Mouse 115,50 To 443,295
  1456.    A2(5)=1 : AF2(5)=10
  1457. Return 
  1458. P2LL:
  1459.    If GS2<=0 Then Bell : Return 
  1460.    Screen Offset 0,625,0
  1461.    MM=625
  1462.    Limit Mouse((AAX2+90)-MM),AAY2+40 To((AAX2+160)-MM),AAY2+75
  1463.    If B2(1)=1 or BS2(1)<=0 Then Goto P2LL1
  1464.    Repeat 
  1465.    Until Mouse Key<>0
  1466.    BX2(1)=((X Mouse-116)+MM) : BY2(1)=Y Mouse-54
  1467.    Bob 19,BX2(1),BY2(1),12
  1468.    Set Zone 19,BX2(1),BY2(1) To BX2(1)+10,BY2(1)+8
  1469.    Limit Mouse 115,50 To 443,295
  1470.    B2(1)=1 : BF2(1)=20
  1471. Return 
  1472. P2LL1:
  1473.    If B2(2)=1 or BS2(2)<=0 Then Goto P2LL2
  1474.    Repeat 
  1475.    Until Mouse Key<>0
  1476.    BX2(2)=((X Mouse-116)+MM) : BY2(2)=Y Mouse-54
  1477.    Bob 20,BX2(2),BY2(2),12
  1478.    Set Zone 20,BX2(2),BY2(2) To BX2(2)+10,BY2(2)+8
  1479.    Limit Mouse 115,50 To 443,295
  1480.    B2(2)=1 : BF2(2)=20
  1481. Return 
  1482. P2LL2:
  1483.    If B2(3)=1 or BS2(3)<=0 Then Goto P2LL3
  1484.    Repeat 
  1485.    Until Mouse Key<>0
  1486.    BX2(3)=((X Mouse-116)+MM) : BY2(3)=Y Mouse-54
  1487.    Bob 21,BX2(3),BY2(3),12
  1488.    Set Zone 21,BX2(3),BY2(3) To BX2(3)+10,BY2(3)+8
  1489.    Limit Mouse 115,50 To 443,295
  1490.    B2(3)=1 : BF2(3)=20
  1491. Return 
  1492. P2LL3:
  1493.    If B2(4)=1 or BS2(4)<=0 Then Goto P2LL4
  1494.    Repeat 
  1495.    Until Mouse Key<>0
  1496.    BX2(4)=((X Mouse-116)+MM) : BY2(4)=Y Mouse-54
  1497.    Bob 22,BX2(4),BY2(4),12
  1498.    Set Zone 22,BX2(4),BY2(4) To BX2(4)+10,BY2(4)+8
  1499.    Limit Mouse 115,50 To 443,295
  1500.    B2(4)=1 : BF2(4)=20
  1501. Return 
  1502. P2LL4:
  1503.    If B2(5)=1 or BS2(5)<=0 Then Goto P2LL5
  1504.    Repeat 
  1505.    Until Mouse Key<>0
  1506.    BX2(5)=((X Mouse-116)+MM) : BY2(5)=Y Mouse-54
  1507.    Bob 23,BX2(5),BY2(5),12
  1508.    Set Zone 23,BX2(5),BY2(5) To BX2(5)+10,BY2(5)+8
  1509.    Limit Mouse 115,50 To 443,295
  1510.    B2(5)=1 : BF2(5)=20
  1511. Return 
  1512. P2LL5:
  1513.    If B2(6)=1 or BS2(6)<=0 Then Goto P2LL6
  1514.    Repeat 
  1515.    Until Mouse Key<>0
  1516.    BX2(6)=((X Mouse-116)+MM) : BY2(6)=Y Mouse-54
  1517.    Bob 24,BX2(6),BY2(6),12
  1518.    Set Zone 24,BX2(6),BY2(6) To BX2(6)+10,BY2(6)+8
  1519.    Limit Mouse 115,50 To 443,295
  1520.    B2(6)=1 : BF2(6)=20
  1521. Return 
  1522. P2LL6:
  1523.    If B2(7)=1 or BS2(7)<=0 Then Goto P2LL7
  1524.    Repeat 
  1525.    Until Mouse Key<>0
  1526.    BX2(7)=((X Mouse-116)+MM) : BY2(7)=Y Mouse-54
  1527.    Bob 25,BX2(7),BY2(7),12
  1528.    Set Zone 25,BX2(7),BY2(7) To BX2(7)+10,BY2(7)+8
  1529.    Limit Mouse 115,50 To 443,295
  1530.    B2(7)=1 : BF2(7)=20
  1531. Return 
  1532. P2LL7:
  1533.    If B2(8)=1 or BS2(8)<=0 Then Bell : Limit Mouse 115,50 To 443,295 : Return 
  1534.    Repeat 
  1535.    Until Mouse Key<>0
  1536.    BX2(8)=((X Mouse-116)+MM) : BY2(8)=Y Mouse-54
  1537.    Bob 26,BX2(8),BY2(8),12
  1538.    Set Zone 26,BX2(8),BY2(8) To BX2(8)+10,BY2(8)+8
  1539.    Limit Mouse 115,50 To 443,295
  1540.    B2(8)=1 : BF2(8)=20
  1541. Return 
  1542. Rem move player 2 short fighter  
  1543. P2SM:
  1544.  For M=1 To 5
  1545.    If A2(M)<>1 Then Goto P2ILL2
  1546.    If M2(6+M)=1 Then Goto P2ILL2
  1547.    Bob 64,AX2(M),AY2(M),64
  1548.    MM=Amreg(0) : QX=MM
  1549.    If AX2(M)<(MM+25) or AX2(M)>(MM+290) Then QX=AX2(M)-150
  1550.    If QX<0 Then QX=0
  1551.    If QX>625 Then QX=625
  1552.    Screen Offset 0,QX,0 : MM=QX
  1553.    Limit Mouse((AX2(M)+96)-MM),AY2(M)+34 To((AX2(M)+136)-MM),AY2(M)+74
  1554.    Repeat : Until Mouse Key=0
  1555.    Repeat 
  1556.    Until Mouse Key<>0
  1557.    If Mouse Key=1 Then Goto P2ILL2
  1558.    Repeat : Until Mouse Key=0
  1559.    P2TEST5:
  1560.       Repeat 
  1561.       Until Mouse Click<>0
  1562.       X=((X Mouse-116)+MM) : Y=Y Mouse-54
  1563.       If Y<0 Then Bell : Goto P2TEST5
  1564.       If Y>240 Then Bell : Goto P2TEST5
  1565.       A=Abs(X-AX2(M)) : B=Abs(Y-AY2(M))
  1566.       If A>B and(X-AX2(M))<0 Then Bob 13+M,,,2
  1567.       If A>B and(X-AX2(M))>0 Then Bob 13+M,,,1
  1568.       If A<B and(Y-AY2(M))<0 Then Bob 13+M,,,3
  1569.       If A<B and(Y-AY2(M))>0 Then Bob 13+M,,,4
  1570.       If X-AX2(M)=-20 and Y-AY2(M)=-20 Then Bob 13+M,,,6
  1571.       If X-AX2(M)=20 and Y-AY2(M)=-20 Then Bob 13+M,,,5
  1572.       If X-AX2(M)=-20 and Y-AY2(M)=20 Then Bob 13+M,,,8
  1573.       If X-AX2(M)=20 and Y-AY2(M)=20 Then Bob 13+M,,,7
  1574.       AX2(M)=X : AY2(M)=Y : Bob 13+M,AX2(M),AY2(M),
  1575.       Set Zone 13+M,AX2(M),AY2(M) To AX2(M)+8,AY2(M)+5
  1576.       M2(6+M)=1
  1577. P2ILL2:
  1578.  Next M
  1579.    Limit Mouse 115,50 To 443,295
  1580.    Bob Off 64
  1581. Return 
  1582. Rem move player 2 long fighters  
  1583. P2LM:
  1584.  For M=1 To 8
  1585.    If B2(M)<>1 or BS2(M)<=0 Then Goto P2ILL3
  1586.    If M2(11+M)=1 Then Goto P2ILL3
  1587.    Bob 64,BX2(M),BY2(M),64
  1588.    MM=Amreg(0) : QX=MM
  1589.    If BX2(M)<(MM+30) or BX2(M)>(MM+285) Then QX=BX2(M)-150
  1590.    If QX<0 Then QX=0
  1591.    If QX>625 Then QX=625
  1592.    Screen Offset 0,QX,0 : MM=QX
  1593.    Limit Mouse((BX2(M)+92)-MM),BY2(M)+30 To((BX2(M)+140)-MM),BY2(M)+78
  1594.    Repeat : Until Mouse Key=0
  1595.    Repeat 
  1596.    Until Mouse Key<>0
  1597.    If Mouse Key=1 Then Goto P2ILL3
  1598.    Repeat : Until Mouse Key=0
  1599.    P2TEST6:
  1600.       Repeat 
  1601.       Until Mouse Click<>0
  1602.       X=((X Mouse-116)+MM) : Y=Y Mouse-54
  1603.       If Y<0 Then Bell : Goto P2TEST6
  1604.       If Y>240 Then Bell : Goto P2TEST6
  1605.       A=Abs(X-BX2(M)) : B=Abs(Y-BY2(M))
  1606.       If A>B and(X-BX2(M))<0 Then Bob 18+M,,,12
  1607.       If A>B and(X-BX2(M))>0 Then Bob 18+M,,,10
  1608.       If A<B and(Y-BY2(M))<0 Then Bob 18+M,,,9
  1609.       If A<B and(Y-BY2(M))>0 Then Bob 18+M,,,11
  1610.       If X-BX2(M)=-24 and Y-BY2(M)=-24 Then Bob 18+M,,,15
  1611.       If X-BX2(M)=24 and Y-BY2(M)=-24 Then Bob 18+M,,,16
  1612.       If X-BX2(M)=-24 and Y-BY2(M)=24 Then Bob 18+M,,,13
  1613.       If X-BX2(M)=24 and Y-BY2(M)=24 Then Bob 18+M,,,14
  1614.       BX2(M)=X : BY2(M)=Y : Bob 18+M,BX2(M),BY2(M),
  1615.       Set Zone 18+M,BX2(M),BY2(M) To BX2(M)+10,BY2(M)+8
  1616.       M2(11+M)=1
  1617. P2ILL3:
  1618.  Next M
  1619.    Limit Mouse 115,50 To 443,295
  1620.    Bob Off 64
  1621. Return 
  1622. P2FF:
  1623.    Screen Offset 0,625,0
  1624.    For M=1 To 4
  1625.    If M2(19+M)=1 Then Goto P2FE
  1626.    If FS2(M)<=0 Then Goto P2FE
  1627.    Bob 64,FX2(M),FY2(M),64
  1628.    Repeat : Until Mouse Key=0
  1629.    Repeat 
  1630.    Until Mouse Key<>0
  1631.    If Mouse Key=1 Then Goto P2FE
  1632.    Repeat : Until Mouse Key=0
  1633.    X=FX2(M)+74 : Y=FY2(M)+47 : R=40
  1634.    M2(19+M)=1
  1635.    Repeat 
  1636.    Until Mouse Key=0
  1637.    STR=1
  1638.    Gosub PFIRE1 : Gosub P2FCHIT
  1639. P2FE:
  1640.    Next M
  1641.    Bob Off 64
  1642. Return 
  1643. P2LCF:
  1644.    Screen Offset 0,625,0
  1645.    For M=1 To 2
  1646.    If M2(23+M)=1 Then Goto P2LFE
  1647.    If LS2(M)<=0 Then Goto P2LFE
  1648.    Bob 64,LX2(M),LY2(M),64
  1649.    Repeat : Until Mouse Key=0
  1650.    Repeat 
  1651.    Until Mouse Key<>0
  1652.    If Mouse Key=1 Then Goto P2LFE
  1653.    Repeat : Until Mouse Key=0
  1654.    X=LX2(M)+54 : Y=LY2(M)+47 : R=60
  1655.    M2(23+M)=1
  1656.    Repeat 
  1657.    Until Mouse Key=0
  1658.    STR=2
  1659.    Gosub PFIRE1 : Gosub P2FCHIT
  1660. P2LFE:
  1661.    Next M
  1662.    Bob Off 64
  1663. Return 
  1664. P2SCF:
  1665.    Screen Offset 0,625,0
  1666.    For M=1 To 2
  1667.    If M2(25+M)=1 Then Goto P2LSE
  1668.    If SS2(M)<=0 Then Goto P2LSE
  1669.    Bob 64,SX2(M),SY2(M),64
  1670.    Repeat : Until Mouse Key=0
  1671.    Repeat 
  1672.    Until Mouse Key<>0
  1673.    If Mouse Key=1 Then Goto P2LSE
  1674.    Repeat : Until Mouse Key=0
  1675.    X=SX2(M)+70 : Y=SY2(M)+47 : R=80
  1676.    M2(25+M)=1
  1677.    Repeat 
  1678.    Until Mouse Key=0
  1679.    STR=2
  1680.    Gosub PFIRE1 : Gosub P2FCHIT
  1681. P2LSE:
  1682.    Next M
  1683.    Bob Off 64
  1684. Return 
  1685. P2PF:
  1686.    For M=1 To 3
  1687.    If M2(3+M)=1 Then Goto P2PFE
  1688.    If PS2(M)<=0 Then Goto P2PFE
  1689.    Bob 64,PX2(M),PY2(M),64
  1690.    MM=Amreg(0) : QX=MM
  1691.    If PX2(M)<(MM+20) or PX2(M)>(MM+295) Then QX=PX2(M)-150
  1692.    If QX<0 Then QX=0
  1693.    If QX>625 Then QX=625
  1694.    Screen Offset 0,QX,0 : MM=QX
  1695.    Repeat : Until Mouse Key=0
  1696.    Repeat 
  1697.    Until Mouse Key<>0
  1698.    If Mouse Key=1 Then Goto P2PFE
  1699.    Repeat : Until Mouse Key=0
  1700.    M2(3+M)=1
  1701.    If I Bob(55+M)=17 Then X=PX2(M)+124 : Y=PY2(M)+47
  1702.    If I Bob(55+M)=18 Then X=PX2(M)+66 : Y=PY2(M)+47
  1703.    If I Bob(55+M)=20 Then X=PX2(M)+93 : Y=PY2(M)+15
  1704.    If I Bob(55+M)=19 Then X=PX2(M)+93 : Y=PY2(M)+80
  1705.    If I Bob(55+M)=24 Then X=PX2(M)+80 : Y=PY2(M)+35
  1706.    If I Bob(55+M)=21 Then X=PX2(M)+80 : Y=PY2(M)+74
  1707.    If I Bob(55+M)=22 Then X=PX2(M)+110 : Y=PY2(M)+35
  1708.    If I Bob(55+M)=23 Then X=PX2(M)+110 : Y=PY2(M)+74
  1709.    R=50 : STR=1
  1710.    Gosub PFIRE1 : Gosub P2FCHIT
  1711. P2PFE:
  1712.    Next M
  1713.    Bob Off 64
  1714. Return 
  1715. P2LF:
  1716.    For M=1 To 8
  1717.    If B2(M)<>1 or BS2(M)<=0 Then Goto P2LFEN
  1718.    If M2(11+M)=1 Then Goto P2LFEN
  1719.    Bob 64,BX2(M),BY2(M),64
  1720.    MM=Amreg(0) : QX=MM
  1721.    If BX2(M)<(MM+20) or BX2(M)>(MM+295) Then QX=BX2(M)-150
  1722.    If QX<0 Then QX=0
  1723.    If QX>625 Then QX=625
  1724.    Screen Offset 0,QX,0 : MM=QX
  1725.    Repeat : Until Mouse Key=0
  1726.    Repeat 
  1727.    Until Mouse Key<>0
  1728.    If Mouse Key=1 Then Goto P2LFEN
  1729.    Repeat : Until Mouse Key=0
  1730.    M2(11+M)=1
  1731.    If I Bob(18+M)=10 Then X=BX2(M)+124 : Y=BY2(M)+47
  1732.    If I Bob(18+M)=12 Then X=BX2(M)+66 : Y=BY2(M)+47
  1733.    If I Bob(18+M)=9 Then X=BX2(M)+93 : Y=BY2(M)+15
  1734.    If I Bob(18+M)=11 Then X=BX2(M)+93 : Y=BY2(M)+80
  1735.    If I Bob(18+M)=15 Then X=BX2(M)+80 : Y=BY2(M)+35
  1736.    If I Bob(18+M)=13 Then X=BX2(M)+80 : Y=BY2(M)+74
  1737.    If I Bob(18+M)=16 Then X=BX2(M)+110 : Y=BY2(M)+35
  1738.    If I Bob(18+M)=14 Then X=BX2(M)+110 : Y=BY2(M)+74
  1739.    R=50 : STR=1
  1740.    Gosub PFIRE1 : Gosub P2FCHIT
  1741. P2LFEN:
  1742.    Next M
  1743.    Bob Off 64
  1744. Return 
  1745. P2SF:
  1746.    For M=1 To 5
  1747.    If A2(M)<>1 Then Goto P2SFEN
  1748.    If M2(6+M)=1 Then Goto P2SFEN
  1749.    Bob 64,AX2(M),AY2(M),64
  1750.    MM=Amreg(0) : QX=MM
  1751.    If AX2(M)<(MM+20) or AX2(M)>(MM+295) Then QX=AX2(M)-150
  1752.    If QX<0 Then QX=0
  1753.    If QX>625 Then QX=625
  1754.    Screen Offset 0,QX,0 : MM=QX
  1755.    Repeat : Until Mouse Key=0
  1756.    Repeat 
  1757.    Until Mouse Key<>0
  1758.    If Mouse Key=1 Then Goto P2SFEN
  1759.    Repeat : Until Mouse Key=0
  1760.    M2(6+M)=1
  1761.    If I Bob(13+M)=1 Then X=AX2(M)+120 : Y=AY2(M)+47
  1762.    If I Bob(13+M)=2 Then X=AX2(M)+76 : Y=AY2(M)+47
  1763.    If I Bob(13+M)=3 Then X=AX2(M)+93 : Y=AY2(M)+25
  1764.    If I Bob(13+M)=4 Then X=AX2(M)+93 : Y=AY2(M)+70
  1765.    If I Bob(13+M)=6 Then X=AX2(M)+80 : Y=AY2(M)+35
  1766.    If I Bob(13+M)=8 Then X=AX2(M)+80 : Y=AY2(M)+74
  1767.    If I Bob(13+M)=5 Then X=AX2(M)+110 : Y=AY2(M)+35
  1768.    If I Bob(13+M)=7 Then X=AX2(M)+110 : Y=AY2(M)+64
  1769.    R=40 : STR=1
  1770.    Gosub PFIRE1 : Gosub P2FCHIT
  1771. P2SFEN:
  1772.    Next M
  1773.    Bob Off 64
  1774. Return 
  1775. P2CF:
  1776.    If CS2<=0 Then Bell : Return 
  1777.    If M2(1)=1 Then Bell : Return 
  1778.    Bob 64,CX2,CY2,64
  1779.    MM=Amreg(0) : QX=MM
  1780.    If CX2<(MM+20) or CX2>(MM+295) Then QX=CX2-150
  1781.    If QX<0 Then QX=0
  1782.    If QX>625 Then QX=625
  1783.    Screen Offset 0,QX,0 : MM=QX
  1784.    M2(1)=1
  1785.    If I Bob(53)=42 or I Bob(53)=43 Then Goto P2CHF
  1786.    If I Bob(53)=44 or I Bob(53)=45 Then Goto P2CVF
  1787. Return 
  1788. P2CHF:
  1789.    Bob 64,CX2-20,CY2,
  1790.    STR=2
  1791.    If I Bob(53)=42 Then STR=3
  1792.    Repeat 
  1793.    Until Mouse Key<>0
  1794.    If Mouse Key=2 Then X=CX2+46 : Y=CY2+52 : R=70 : Gosub PFIRE1 : Gosub P2FCHIT : Bob Off 64 : Return 
  1795.    Repeat 
  1796.    Until Mouse Key=0
  1797.    Bob 64,CX2+15,CY2-15,
  1798.    STR=1
  1799.    Repeat 
  1800.    Until Mouse Key<>0
  1801.    If Mouse Key=2 Then X=CX2+110 : Y=CY2+20 : R=50 : Gosub PFIRE1 : Gosub P2FCHIT : Bob Off 64 : Return 
  1802.    Repeat 
  1803.    Until Mouse Key=0
  1804.    Bob 64,CX2+45,CY2,
  1805.    STR=2
  1806.    If I Bob(53)=43 Then STR=3
  1807.    Repeat 
  1808.    Until Mouse Key<>0
  1809.    If Mouse Key=2 Then X=CX2+145 : Y=CY2+50 : R=70 : Gosub PFIRE1 : Gosub P2FCHIT : Bob Off 64 : Return 
  1810.    Repeat 
  1811.    Until Mouse Key=0
  1812.    Bob 64,CX2+15,CY2+20,
  1813.    STR=1
  1814.    Repeat 
  1815.    Until Mouse Key<>0
  1816.    If Mouse Key=2 Then X=CX2+110 : Y=CY2+75 : R=50 : Gosub PFIRE1 : Gosub P2FCHIT : Bob Off 64 : Return 
  1817.    Repeat 
  1818.    Until Mouse Key=0
  1819. Goto P2CHF
  1820. P2CVF:
  1821.    Bob 64,CX2-10,CY2+15,
  1822.    STR=1
  1823.    Repeat 
  1824.    Until Mouse Key<>0
  1825.    If Mouse Key=2 Then X=CX2+66 : Y=CY2+60 : R=50 : Gosub PFIRE1 : Gosub P2FCHIT : Bob Off 64 : Return 
  1826.    Repeat 
  1827.    Until Mouse Key=0
  1828.    Bob 64,CX2+2,CY2-15,
  1829.    STR=2
  1830.    If I Bob(53)=45 Then STR=3
  1831.    Repeat 
  1832.    Until Mouse Key<>0
  1833.    If Mouse Key=2 Then X=CX2+85 : Y=CY2+10 : R=70 : Gosub PFIRE1 : Gosub P2FCHIT : Bob Off 64 : Return 
  1834.    Repeat 
  1835.    Until Mouse Key=0
  1836.    Bob 64,CX2+20,CY2+15,
  1837.    STR=1
  1838.    Repeat 
  1839.    Until Mouse Key<>0
  1840.    If Mouse Key=2 Then X=CX2+120 : Y=CY2+60 : R=50 : Gosub PFIRE1 : Gosub P2FCHIT : Bob Off 64 : Return 
  1841.    Repeat 
  1842.    Until Mouse Key=0
  1843.    Bob 64,CX2+2,CY2+40,
  1844.    STR=2
  1845.    If I Bob(53)=44 Then STR=3
  1846.    Repeat 
  1847.    Until Mouse Key<>0
  1848.    If Mouse Key=2 Then X=CX2+80 : Y=CY2+110 : R=70 : Gosub PFIRE1 : Gosub P2FCHIT : Bob Off 64 : Return 
  1849.    Repeat 
  1850.    Until Mouse Key=0
  1851. Goto P2CVF
  1852. Return 
  1853. P2DF:
  1854.    For M=1 To 2
  1855.    If DS2(M)<=0 Then Goto P2DFE
  1856.    If M2(1+M)=1 Then Goto P2DFE
  1857.    Bob 64,DX2(M),DY2(M),64
  1858.    MM=Amreg(0) : QX=MM
  1859.    If DX2(M)<(MM+20) or DX2(M)>(MM+295) Then QX=DX2(M)-150
  1860.    If QX<0 Then QX=0
  1861.    If QX>625 Then QX=625
  1862.    Screen Offset 0,QX,0 : MM=QX
  1863.    Repeat : Until Mouse Key=0
  1864.    Repeat 
  1865.    Until Mouse Key<>0
  1866.    If Mouse Key=1 Then Goto P2DFE
  1867.    Repeat : Until Mouse Key=0
  1868.    M2(1+M)=1
  1869.    If I Bob(53+M)=25 or I Bob(53+M)=26 Then Gosub P2DHF
  1870.    If I Bob(53+M)=27 or I Bob(53+M)=28 Then Gosub P2DVF
  1871.    If I Bob(53+M)=29 or I Bob(53+M)=30 Then Gosub P2DRF
  1872.    If I Bob(53+M)=31 or I Bob(53+M)=32 Then Gosub P2DLF
  1873. P2DFE:
  1874.    Next M
  1875.    Bob Off 64
  1876. Return 
  1877. P2DHF:
  1878.    Bob 64,DX2(M)-10,DY2(M),
  1879.    STR=1
  1880.    If I Bob(53+M)=25 Then STR=2
  1881.    Repeat 
  1882.    Until Mouse Key<>0
  1883.    If Mouse Key=2 Then X=DX2(M)+65 : Y=DY2(M)+46 : R=50 : Gosub PFIRE1 : Gosub P2FCHIT : Return 
  1884.    Repeat 
  1885.    Until Mouse Key=0
  1886.    Bob 64,DX2(M)+10,DY2(M)-10,
  1887.    STR=1
  1888.    Repeat 
  1889.    Until Mouse Key<>0
  1890.    If Mouse Key=2 Then X=DX2(M)+102 : Y=DY2(M)+16 : R=50 : Gosub PFIRE1 : Gosub P2FCHIT : Return 
  1891.    Repeat 
  1892.    Until Mouse Key=0
  1893.    Bob 64,DX2(M)+35,DY2(M),
  1894.    STR=1
  1895.    If I Bob(53+M)=26 Then STR=2
  1896.    Repeat 
  1897.    Until Mouse Key<>0
  1898.    If Mouse Key=2 Then X=DX2(M)+138 : Y=DY2(M)+46 : R=50 : Gosub PFIRE1 : Gosub P2FCHIT : Return 
  1899.    Repeat 
  1900.    Until Mouse Key=0
  1901.    Bob 64,DX2(M)+10,DY2(M)+12,
  1902.    Repeat 
  1903.    Until Mouse Key<>0
  1904.    If Mouse Key=2 Then X=DX2(M)+102 : Y=DY2(M)+75 : R=50 : Gosub PFIRE1 : Gosub P2FCHIT : Return 
  1905.    Repeat 
  1906.    Until Mouse Key=0
  1907. Goto P2DHF
  1908. P2DVF:
  1909.    Bob 64,DX2(M)-10,DY2(M)+10,
  1910.    STR=1
  1911.    Repeat 
  1912.    Until Mouse Key<>0
  1913.    If Mouse Key=2 Then X=DX2(M)+66 : Y=DY2(M)+55 : R=50 : Gosub PFIRE1 : Gosub P2FCHIT : Return 
  1914.    Repeat 
  1915.    Until Mouse Key=0
  1916.    Bob 64,DX2(M)+2,DY2(M)-10,
  1917.    STR=1
  1918.    If I Bob(53+M)=27 Then STR=2
  1919.    Repeat 
  1920.    Until Mouse Key<>0
  1921.    If Mouse Key=2 Then X=DX2(M)+90 : Y=DY2(M)+15 : R=50 : Gosub PFIRE1 : Gosub P2FCHIT : Return 
  1922.    Repeat 
  1923.    Until Mouse Key=0
  1924.    Bob 64,DX2(M)+12,DY2(M)+10,
  1925.    STR=1
  1926.    Repeat 
  1927.    Until Mouse Key<>0
  1928.    If Mouse Key=2 Then X=DX2(M)+120 : Y=DY2(M)+60 : R=50 : Gosub PFIRE1 : Gosub P2FCHIT : Return 
  1929.    Repeat 
  1930.    Until Mouse Key=0
  1931.    Bob 64,DX2(M)+2,DY2(M)+30,
  1932.    STR=1
  1933.    If I Bob(53+M)=28 Then STR=2
  1934.    Repeat 
  1935.    Until Mouse Key<>0
  1936.    If Mouse Key=2 Then X=DX2(M)+90 : Y=DY2(M)+100 : R=50 : Gosub PFIRE1 : Gosub P2FCHIT : Return 
  1937.    Repeat 
  1938.    Until Mouse Key=0
  1939. Goto P2DVF
  1940. Return 
  1941. P2DRF:
  1942.    Bob 64,DX2(M)-2,DY2(M),
  1943.    STR=1
  1944.    Repeat 
  1945.    Until Mouse Key<>0
  1946.    If Mouse Key=2 Then X=DX2(M)+75 : Y=DY2(M)+35 : R=50 : Gosub PFIRE1 : Gosub P2FCHIT : Return 
  1947.    Repeat 
  1948.    Until Mouse Key=0
  1949.    Bob 64,DX2(M)+22,DY2(M)-10,
  1950.    STR=1
  1951.    If I Bob(53+M)=30 Then STR=2
  1952.    Repeat 
  1953.    Until Mouse Key<>0
  1954.    If Mouse Key=2 Then X=DX2(M)+115 : Y=DY2(M)+25 : R=50 : Gosub PFIRE1 : Gosub P2FCHIT : Return 
  1955.    Repeat 
  1956.    Until Mouse Key=0
  1957.    Bob 64,DX2(M)+14,DY2(M)+12,
  1958.    STR=1
  1959.    Repeat 
  1960.    Until Mouse Key<>0
  1961.    If Mouse Key=2 Then X=DX2(M)+110 : Y=DY2(M)+65 : R=50 : Gosub PFIRE1 : Gosub P2FCHIT : Return 
  1962.    Repeat 
  1963.    Until Mouse Key=0
  1964.    Bob 64,DX2(M)-8,DY2(M)+20,
  1965.    STR=1
  1966.    If I Bob(53+M)=29 Then STR=2
  1967.    Repeat 
  1968.    Until Mouse Key<>0
  1969.    If Mouse Key=2 Then X=DX2(M)+80 : Y=DY2(M)+80 : R=50 : Gosub PFIRE1 : Gosub P2FCHIT : Return 
  1970.    Repeat 
  1971.    Until Mouse Key=0
  1972. Goto P2DRF
  1973. Return 
  1974. P2DLF:
  1975.    Bob 64,DX2(M),DY2(M)+12,
  1976.    STR=1
  1977.    Repeat 
  1978.    Until Mouse Key<>0
  1979.    If Mouse Key=2 Then X=DX2(M)+85 : Y=DY2(M)+60 : R=50 : Gosub PFIRE1 : Gosub P2FCHIT : Return 
  1980.    Repeat 
  1981.    Until Mouse Key=0
  1982.    Bob 64,DX2(M)-10,DY2(M)-10,
  1983.    STR=1
  1984.    If I Bob(53+M)=32 Then STR=2
  1985.    Repeat 
  1986.    Until Mouse Key<>0
  1987.    If Mouse Key=2 Then X=DX2(M)+80 : Y=DY2(M)+25 : R=50 : Gosub PFIRE1 : Gosub P2FCHIT : Return 
  1988.    Repeat 
  1989.    Until Mouse Key=0
  1990.    Bob 64,DX2(M)+20,DY2(M)+2,
  1991.    STR=1
  1992.    Repeat 
  1993.    Until Mouse Key<>0
  1994.    If Mouse Key=2 Then X=DX2(M)+110 : Y=DY2(M)+40 : R=50 : Gosub PFIRE1 : Gosub P2FCHIT : Return 
  1995.    Repeat 
  1996.    Until Mouse Key=0
  1997.    Bob 64,DX2(M)+22,DY2(M)+20,
  1998.    STR=1
  1999.    If I Bob(53+M)=31 Then STR=2
  2000.    Repeat 
  2001.    Until Mouse Key<>0
  2002.    If Mouse Key=2 Then X=DX2(M)+115 : Y=DY2(M)+80 : R=50 : Gosub PFIRE1 : Gosub P2FCHIT : Return 
  2003.    Repeat 
  2004.    Until Mouse Key=0
  2005. Goto P2DLF
  2006. Return 
  2007. P1FCHIT:
  2008.    Repeat 
  2009.    Until Mouse Key=0
  2010.    XX=XX+1 : YY=YY+1
  2011.    X=X Screen(XX) : Y=Y Screen(YY) : ZO=Zone(X,Y)
  2012.    Plot X,Y
  2013.    If ZO=53 and CS2>0 Then Gosub PHIT : CS2=CS2-STR
  2014.    If CS2<=0 Then Bob Off 53
  2015.    For A=54 To 55
  2016.       If ZO=A and DS2(A-53)>0 Then Gosub PHIT : DS2(A-53)=DS2(A-53)-STR
  2017.       If DS2(A-53)<=0 Then Bob Off A
  2018.    Next A
  2019.    For A=56 To 58
  2020.       If ZO=A and PS2(A-55)>0 Then Gosub PHIT : PS2(A-55)=PS2(A-55)-STR
  2021.       If PS2(A-55)<=0 Then Bob Off A
  2022.    Next A
  2023.    If ZO=52 and GS2>0 Then Gosub PHIT : GS2=GS2-STR
  2024.    If GS2<=0 Then Bob Off 52
  2025.    If ZO=51 and MS2>0 Then Gosub PHIT : MS2=MS2-STR
  2026.    If MS2<=0 Then Gosub P2DEAD
  2027.    For A=49 To 50
  2028.       If ZO=A and SS2(A-48)>0 Then Gosub PHIT : SS2(A-48)=SS2(A-48)-STR
  2029.       If SS2(A-48)<=0 Then Bob Off A
  2030.    Next A
  2031.    For A=47 To 48
  2032.       If ZO=A and LS2(A-46)>0 Then Gosub PHIT : LS2(A-46)=LS2(A-46)-STR
  2033.       If LS2(A-46)<=0 Then Bob Off A
  2034.    Next A
  2035.    For A=43 To 46
  2036.       If ZO=A and FS2(A-42)>0 Then Gosub PHIT : FS2(A-42)=FS2(A-42)-STR
  2037.       If FS2(A-42)<=0 Then Bob Off A
  2038.    Next A
  2039.    For A=14 To 18
  2040.       If ZO=A and A2(A-13)<>-1 and A2(A-13)=1 Then Gosub PHIT : A2(A-13)=-1 : Bob Off A
  2041.    Next A
  2042.    For A=19 To 26
  2043.       If ZO=A and BS2(A-18)>0 and B2(A-18)=1 Then Gosub PHIT : BS2(A-18)=BS2(A-18)-STR
  2044.       If BS2(A-18)<=0 Then Bob Off A
  2045.    Next A
  2046. Return 
  2047. P2FCHIT:
  2048.    Repeat 
  2049.    Until Mouse Key=0
  2050.    XX=XX+1 : YY=YY+1
  2051.    X=X Screen(XX) : Y=Y Screen(YY) : ZO=Zone(X,Y)
  2052.    Plot X,Y
  2053.    If ZO=37 and CS1>0 Then Gosub PHIT : CS1=CS1-STR
  2054.    If CS1<=0 Then Bob Off 37
  2055.    For A=38 To 39
  2056.       If ZO=A and DS1(A-37)>0 Then Gosub PHIT : DS1(A-37)=DS1(A-37)-STR
  2057.       If DS1(A-37)<=0 Then Bob Off A
  2058.    Next A
  2059.    For A=40 To 42
  2060.       If ZO=A and PS1(A-39)>0 Then Gosub PHIT : PS1(A-39)=PS1(A-39)-STR
  2061.       If PS1(A-39)<=0 Then Bob Off A
  2062.    Next A
  2063.    If ZO=36 and GS1>0 Then Gosub PHIT : GS1=GS1-STR
  2064.    If GS1<=0 Then Bob Off 36
  2065.    If ZO=35 and MS1>0 Then Gosub PHIT : MS1=MS1-STR
  2066.    If MS1<=0 Then Gosub P1DEAD
  2067.    For A=33 To 34
  2068.       If ZO=A and SS1(A-32)>0 Then Gosub PHIT : SS1(A-32)=SS1(A-32)-STR
  2069.       If SS1(A-32)<=0 Then Bob Off A
  2070.    Next A
  2071.    For A=31 To 32
  2072.       If ZO=A and LS1(A-30)>0 Then Gosub PHIT : LS1(A-30)=LS1(A-30)-STR
  2073.       If LS1(A-30)<=0 Then Bob Off A
  2074.    Next A
  2075.    For A=27 To 30
  2076.       If ZO=A and FS1(A-26)>0 Then Gosub PHIT : FS1(A-26)=FS1(A-26)-STR
  2077.       If FS1(A-26)<=0 Then Bob Off A
  2078.    Next A
  2079.    For A=1 To 5
  2080.       If ZO=A and A1(A)<>-1 and A1(A)=1 Then Gosub PHIT : A1(A)=-1 : Bob Off A
  2081.    Next A
  2082.    For A=6 To 13
  2083.       If ZO=A and BS1(A-5)>0 and B1(A-5)=1 Then Gosub PHIT : BS1(A-5)=BS1(A-5)-STR
  2084.       If BS1(A-5)<=0 Then Bob Off A
  2085.    Next A
  2086. Return 
  2087. Rem player craft hit 
  2088. PHIT:
  2089.    Boom 
  2090.    For B=50 To 54
  2091.       Sprite 1,XX-8,YY-8,B
  2092.       For T=1 To 1000 : Next T
  2093.    Next B
  2094.    Sprite 1,0,0,48
  2095. Return 
  2096. Rem player 1 stat sheet  
  2097. P1STAT:
  2098.    Load Iff "iff/tech-craft-p1.iff",1
  2099.    Screen To Front 1
  2100.    Inc GTIME : Inc LFUEL : Inc PRODUCTION
  2101.    For M=1 To 5
  2102.       If A1(M)=1 Then Dec AF1(M)
  2103.       If AF1(M)<=0 Then Bob Off M : A1(M)=-1
  2104.       If A2(M)=1 Then Dec AF2(M)
  2105.       If AF2(M)<=0 Then Bob Off(M+13) : A2(M)=-1
  2106.    Next M
  2107.    For M=1 To 8
  2108.       If B1(M)=1 and LFUEL=5 Then Dec BF1(M)
  2109.       If BF1(M)<=0 Then Bob Off(5+M) : B1(M)=0
  2110.       If B2(M)=1 and LFUEL=5 Then Dec BF2(M)
  2111.       If BF2(M)<=0 Then Bob Off(18+M) : B2(M)=0
  2112.    Next M
  2113.    If LFUEL=5 Then LFUEL=0
  2114.    If PRODUCTION=10 Then Gosub REBUILD : PRODUCTION=0
  2115.    Locate 28,19
  2116.    Print GTIME
  2117.    For M=1 To 30
  2118.       M1(M)=0 : M2(M)=0
  2119.    Next M
  2120.    Repeat 
  2121.    Until Mouse Key=0
  2122.    If GS1>0
  2123.       Bar 65,45 To 65+GS1,50
  2124.    Else 
  2125.       Draw 65,47 To 85,47
  2126.    End If 
  2127.    If MS1>0
  2128.       Bar 65,65 To 65+MS1,70
  2129.    Else 
  2130.       Draw 65,67 To 85,67
  2131.    End If 
  2132.    If CS1>0
  2133.       Bar 65,82 To 65+CS1,87
  2134.    Else 
  2135.       Draw 65,84 To 85,84
  2136.    End If 
  2137.    For B=1 To 2
  2138.       If DS1(B)>0
  2139.          Bar 65,84+(B*16) To 65+DS1(B),89+(B*16)
  2140.       Else 
  2141.          Draw 65,86+(B*16) To 85,86+(B*16)
  2142.       End If 
  2143.    Next B
  2144.    For B=1 To 3
  2145.       If PS1(B)>0
  2146.          Bar 65,116+(B*16) To 65+PS1(B),121+(B*16)
  2147.       Else 
  2148.          Draw 65,116+(B*16) To 85,116+(B*16)
  2149.       End If 
  2150.    Next B
  2151.    For B=1 To 2
  2152.       If LS1(B)>0
  2153.          Bar 65,166+(B*18) To 65+LS1(B),171+(B*18)
  2154.       Else 
  2155.          Draw 65,166+(B*18) To 85,166+(B*18)
  2156.       End If 
  2157.    Next B
  2158.    If FS1(1)>0
  2159.       Bar 65,217 To 65+FS1(1),222
  2160.    Else 
  2161.      0 Draw 65,219 To 85,219
  2162.    End If 
  2163.    For B=2 To 4
  2164.       If FS1(B)>0
  2165.          Bar 140,5+(B*16) To 140+FS1(1),10+(B*16)
  2166.       Else 
  2167.          Draw 140,10+(B*16) To 160,10+(B*16)
  2168.       End If 
  2169.    Next B
  2170.    For B=1 To 2
  2171.       If SS1(B)>0
  2172.          Bar 140,67+(B*16) To 140+SS1(B),72+(B*16)
  2173.       Else 
  2174.          Draw 140,69+(B*16) To 160,69+(B*16)
  2175.       End If 
  2176.    Next B
  2177.    For B=1 To 8
  2178.       If BS1(B)>0
  2179.          Bar 140,102+(B*13) To 140+BS1(B),107+(B*13)
  2180.       Else 
  2181.          Draw 140,104+(B*13) To 160,104+(B*13)
  2182.       End If 
  2183.    Next B
  2184.    For B=1 To 8
  2185.       If B1(B)=0 Then Draw 145,104+(B*13) To 148,104+(B*13)
  2186.       If BF1(B)=0
  2187.          Draw 165,104+(B*13) To 185,104+(B*13)
  2188.       Else 
  2189.          Bar 165,102+(B*13) To 165+BF1(B),107+(B*13)
  2190.       End If 
  2191.    Next B
  2192.    If A1(1)=1 or A1(1)=0 Then Draw 140,220 To 140,225
  2193.    If A1(1)=0 Then Draw 145,222 To 148,222
  2194.    If A1(1)=-1 Then Draw 140,222 To 160,222
  2195.    If AF1(1)=0
  2196.       Draw 165,222 To 185,222
  2197.    Else 
  2198.       Bar 165,220 To 165+AF1(1),225
  2199.    End If 
  2200.    For B=2 To 5
  2201.       If A1(B)=1 or A1(B)=0 Then Draw 235,15+(B*12) To 235,20+(B*12)
  2202.       If A1(B)=0 Then Draw 240,17+(B*12) To 243,17+(B*12)
  2203.       If A1(B)=-1 Then Draw 235,15+(B*12) To 255,15+(B*12)
  2204.       If AF1(B)=0
  2205.          Draw 260,17+(B*12) To 280,17+(B*12)
  2206.       Else 
  2207.          Bar 260,15+(B*12) To 260+AF1(B),20+(B*12)
  2208.       End If 
  2209.    Next B
  2210.    Repeat 
  2211.    Until Mouse Key<>0
  2212.    Load Iff "iff/tech-craft-p2.iff",1
  2213.    Locate 28,19
  2214.    Print GTIME
  2215.    Repeat 
  2216.    Until Mouse Key=0
  2217.    If GS2>0
  2218.       Bar 65,45 To 65+GS2,50
  2219.    Else 
  2220.       Draw 65,47 To 85,47
  2221.    End If 
  2222.    If MS2>0
  2223.       Bar 65,65 To 65+MS2,70
  2224.    Else 
  2225.       Draw 65,67 To 85,67
  2226.    End If 
  2227.    If CS2>0
  2228.       Bar 65,82 To 65+CS2,87
  2229.    Else 
  2230.       Draw 65,84 To 85,84
  2231.    End If 
  2232.    For B=1 To 2
  2233.       If DS2(B)>0
  2234.          Bar 65,84+(B*16) To 65+DS2(B),89+(B*16)
  2235.       Else 
  2236.          Draw 65,86+(B*16) To 85,86+(B*16)
  2237.       End If 
  2238.    Next B
  2239.    For B=1 To 3
  2240.       If PS2(B)>0
  2241.          Bar 65,116+(B*16) To 65+PS2(B),121+(B*16)
  2242.       Else 
  2243.          Draw 65,116+(B*16) To 85,116+(B*16)
  2244.       End If 
  2245.    Next B
  2246.    For B=1 To 2
  2247.       If LS2(B)>0
  2248.          Bar 65,166+(B*18) To 65+LS2(B),171+(B*18)
  2249.       Else 
  2250.          Draw 65,166+(B*18) To 85,166+(B*18)
  2251.       End If 
  2252.    Next B
  2253.    If FS2(1)>0
  2254.       Bar 65,217 To 65+FS2(1),222
  2255.    Else 
  2256.       Draw 65,219 To 85,219
  2257.    End If 
  2258.    For B=2 To 4
  2259.       If FS2(B)>0
  2260.          Bar 140,5+(B*16) To 140+FS2(1),10+(B*16)
  2261.       Else 
  2262.          Draw 140,10+(B*16) To 160,10+(B*16)
  2263.       End If 
  2264.    Next B
  2265.    For B=1 To 2
  2266.       If SS2(B)>0
  2267.          Bar 140,67+(B*16) To 140+SS2(B),72+(B*16)
  2268.       Else 
  2269.          Draw 140,69+(B*16) To 160,69+(B*16)
  2270.       End If 
  2271.    Next B
  2272.    For B=1 To 8
  2273.       If BS2(B)>0
  2274.          Bar 140,102+(B*13) To 140+BS2(B),107+(B*13)
  2275.       Else 
  2276.          Draw 140,104+(B*13) To 160,104+(B*13)
  2277.       End If 
  2278.    Next B
  2279.    For B=1 To 8
  2280.       If B2(B)=0 Then Draw 145,104+(B*13) To 148,104+(B*13)
  2281.       If BF2(B)=0
  2282.          Draw 165,104+(B*13) To 185,104+(B*13)
  2283.       Else 
  2284.          Bar 165,102+(B*13) To 165+BF2(B),107+(B*13)
  2285.       End If 
  2286.    Next B
  2287.    If A2(1)=1 or A2(1)=0 Then Draw 140,220 To 140,225
  2288.    If A2(1)=0 Then Draw 145,222 To 148,222
  2289.    If A2(1)=-1 Then Draw 140,222 To 160,222
  2290.    If AF2(1)=0
  2291.       Draw 165,222 To 185,222
  2292.    Else 
  2293.       Bar 165,220 To 165+AF2(1),225
  2294.    End If 
  2295.    For B=2 To 5
  2296.       If A2(B)=1 or A2(B)=0 Then Draw 235,15+(B*12) To 235,20+(B*12)
  2297.       If A2(B)=0 Then Draw 240,17+(B*12) To 243,17+(B*12)
  2298.       If A2(B)=-1 Then Draw 235,15+(B*12) To 255,15+(B*12)
  2299.       If AF2(B)=0
  2300.          Draw 260,17+(B*12) To 280,17+(B*12)
  2301.       Else 
  2302.          Bar 260,15+(B*12) To 260+AF2(B),20+(B*12)
  2303.       End If 
  2304.    Next B
  2305.    Repeat 
  2306.    Until Mouse Key<>0
  2307.    Repeat 
  2308.    Until Mouse Key=0
  2309.    Screen To Front 0
  2310.    Screen 0
  2311. Return 
  2312. Rem p1 bomber
  2313. P1B:
  2314.    If GTIME<50 or P1BOM=0 Then Bell : Return 
  2315.    Dec P1BOM
  2316.    Screen Offset 0,625,0
  2317.    Repeat 
  2318.    Until Mouse Key<>0
  2319.    X=X Mouse : Y=Y Mouse
  2320.    Repeat 
  2321.    Until Mouse Key=0
  2322.    Screen Offset 0,0,0
  2323.    Limit Mouse 160,100 To 160,100
  2324.    For B=50 To 300 Step 1
  2325.       Sprite 1,B,Y-8,33
  2326.       For T=1 To 300 : Next T
  2327.    Next B
  2328.    For B=0 To 624 Step 2
  2329.       Screen Offset 0,B,0
  2330.       For T=1 To 300 : Next T
  2331.    Next B
  2332.    Screen Offset 0,625,0
  2333.    For B=300 To 450
  2334.       Sprite 1,B,Y-8,33
  2335.       For T=1 To 300 : Next T
  2336.    Next B
  2337.    STR=2 : XT=X : YT=Y
  2338.    XX=X-Rnd(30) : YY=Y+Rnd(15)-Rnd(20) : Gosub P1FCHIT : X=XT : Y=YT
  2339.    XX=X-Rnd(15) : YY=Y+Rnd(15)-Rnd(20) : Gosub P1FCHIT : X=XT : Y=YT
  2340.    XX=X : YY=Y+Rnd(5)-Rnd(10) : Gosub P1FCHIT : X=XT : Y=YT
  2341.    XX=X+Rnd(15) : YY=Y+Rnd(15)-Rnd(20) : Gosub P1FCHIT : X=XT : Y=YT
  2342.    XX=X+Rnd(30) : YY=Y+Rnd(15)-Rnd(20) : Gosub P1FCHIT
  2343.    Limit Mouse 115,50 To 443,295
  2344. Return 
  2345. Rem p2 bomber
  2346. P2B:
  2347.    If GTIME<50 or P2BOM=0 Then Bell : Return 
  2348.    Dec P2BOM
  2349.    Screen Offset 0,0,0
  2350.    Repeat 
  2351.    Until Mouse Key<>0
  2352.    X=X Mouse : Y=Y Mouse
  2353.    Repeat 
  2354.    Until Mouse Key=0
  2355.    Screen Offset 0,625,0
  2356.    Limit Mouse 350,100 To 350,100
  2357.    For B=450 To 200 Step -1
  2358.       Sprite 1,B,Y-8,34
  2359.       For T=1 To 300 : Next T
  2360.    Next B
  2361.    For B=624 To 0 Step -2
  2362.       Screen Offset 0,B,0
  2363.       For T=1 To 300 : Next T
  2364.    Next B
  2365.    For B=200 To 20 Step -1
  2366.       Sprite 1,B,Y-8,34
  2367.       For T=1 To 300 : Next T
  2368.    Next B
  2369.    STR=2 : XT=X : YT=Y
  2370.    XX=X-Rnd(30) : YY=Y+Rnd(15)-Rnd(20) : Gosub P2FCHIT : X=XT : Y=YT
  2371.    XX=X-Rnd(15) : YY=Y+Rnd(15)-Rnd(20) : Gosub P2FCHIT : X=XT : Y=YT
  2372.    XX=X : YY=Y+Rnd(5)-Rnd(10) : Gosub P2FCHIT : X=XT : Y=YT
  2373.    XX=X+Rnd(15) : YY=Y+Rnd(15)-Rnd(20) : Gosub P2FCHIT : X=XT : Y=YT
  2374.    XX=X+Rnd(30) : YY=Y+Rnd(15)-Rnd(20) : Gosub P2FCHIT
  2375.    Limit Mouse 115,50 To 443,295
  2376. Return 
  2377. Rem p1 missle
  2378. P1M:
  2379.    If GTIME<30 or P1MIS=0 Then Bell : Return 
  2380.    Dec P1MIS
  2381.    Screen Offset 0,625,0
  2382.    Repeat 
  2383.    Until Mouse Key<>0
  2384.    X=X Mouse : Y=Y Mouse
  2385.    Repeat 
  2386.    Until Mouse Key=0
  2387.    Screen Offset 0,0,0
  2388.    Limit Mouse 160,100 To 160,100
  2389.    For B=50 To 115 Step 1
  2390.       Sprite 1,B,Y-8,35
  2391.       For T=1 To 200 : Next T
  2392.    Next B
  2393.    For B=0 To 624 Step 2
  2394.       Screen Offset 0,B,0
  2395.       For T=1 To 200 : Next T
  2396.    Next B
  2397.    Screen Offset 0,625,0
  2398.    For B=115 To X-10
  2399.       Sprite 1,B,Y-8,35
  2400.       For T=1 To 200 : Next T
  2401.    Next B
  2402.    STR=1 : XT=X : YT=Y
  2403.    X=X-5 : Y=Y-5 : Gosub PHIT
  2404.    For QQ=1 To 10
  2405.       X=XT : Y=YT
  2406.       XX=X-Rnd(25)+Rnd(25) : YY=Y-Rnd(30)+Rnd(25)
  2407.       Gosub P1FCHIT
  2408.    Next QQ
  2409.    Limit Mouse 115,50 To 443,295
  2410. Return 
  2411. Rem p2 missle
  2412. P2M:
  2413.    If GTIME<30 or P2MIS=0 Then Bell : Return 
  2414.    Dec P2MIS
  2415.    Screen Offset 0,0,0
  2416.    Repeat 
  2417.    Until Mouse Key<>0
  2418.    X=X Mouse : Y=Y Mouse
  2419.    Repeat 
  2420.    Until Mouse Key=0
  2421.    Screen Offset 0,625,0
  2422.    Limit Mouse 350,100 To 350,100
  2423.    For B=450 To 420 Step -1
  2424.       Sprite 1,B,Y-8,36
  2425.       For T=1 To 200 : Next T
  2426.    Next B
  2427.    For B=624 To 0 Step -2
  2428.       Screen Offset 0,B,0
  2429.       For T=1 To 200 : Next T
  2430.    Next B
  2431.    For B=420 To X-10 Step -1
  2432.       Sprite 1,B,Y-8,36
  2433.       For T=1 To 200 : Next T
  2434.    Next B
  2435.    STR=1 : XT=X : YT=Y
  2436.    X=X-5 : Y=Y-5 : Gosub PHIT
  2437.    For QQ=1 To 10
  2438.       X=XT : Y=YT
  2439.       XX=X-Rnd(25)+Rnd(25) : YY=Y-Rnd(30)+Rnd(25)
  2440.       Gosub P2FCHIT
  2441.    Next QQ
  2442.    Limit Mouse 115,50 To 443,295
  2443. Return 
  2444. Rem check land for ships 
  2445. CHECKLAND:
  2446.    Q=0
  2447.    If X<94 or X>871 Then Q=1 : Bell : Return 
  2448.    If Y>39 and Y<50 and X>131 and X<147 Then Q=1 : Bell : Return 
  2449.    If Y>96 and Y<135 and X>161 and X<188 Then Q=1 : Bell : Return 
  2450.    If Y>135 and Y<154 and X>157 and X<174 Then Q=1 : Bell : Return 
  2451.    If Y>174 and Y<195 and X>122 and X<141 Then Q=1 : Bell : Return 
  2452.    If Y>115 and Y<122 and X>410 and X<419 Then Q=1 : Bell : Return 
  2453.    If Y>44 and Y<51 and X>532 and X<542 Then Q=1 : Bell : Return 
  2454.    If Y>51 and Y<75 and X>798 and X<821 Then Q=1 : Bell : Return 
  2455.    If Y>182 and Y<193 and X>827 and X<838 Then Q=1 : Bell : Return 
  2456.    If Y>209 and Y<228 and X>767 and X<797 Then Q=1 : Bell : Return 
  2457.    If Y>102 and Y<133 and X>789 and X<814 Then Q=1 : Bell : Return 
  2458.    If Y>133 and Y<163 and X>773 and X<798 Then Q=1 : Bell : Return 
  2459. Return 
  2460. Rem land player 1 short fighter
  2461. P1SLL:
  2462.    If CS1<=0 Then Bell : Return 
  2463.    For M=1 To 5
  2464.       If A1(M)=-1 or A1(M)=0 Then Goto NNEXT
  2465.       If AY1(M)>(CY1-10) and AY1(M)<(CY1+23) and AX1(M)>(CX1-10) and AX1(M)<(CX1+45) Then Bob Off(0+M) : A1(M)=0
  2466.    NNEXT:
  2467.       Next M
  2468. Return 
  2469. Rem land player 2 short fighter
  2470. P2SLL:
  2471.    If CS2<=0 Then Bell : Return 
  2472.    For M=1 To 5
  2473.       If A2(M)=-1 or A2(M)=0 Then Goto P2NNEXT
  2474.       If AY2(M)>(CY2-10) and AY2(M)<(CY2+23) and AX2(M)>(CX2-10) and AX2(M)<(CX2+45) Then Bob Off(13+M) : A2(M)=0
  2475.    P2NNEXT:
  2476.       Next M
  2477. Return 
  2478. Rem land player 1 long fighter 
  2479. P1LLL:
  2480.    If GS1<=0 Then Bell : Return 
  2481.    Screen Offset 0,0,0
  2482.    For M=1 To 8
  2483.       If BS1(M)<=0 or B1(M)=0 Then Goto P1LNEXT
  2484.       If BY1(M)>(AAY1-10) and BY1(M)<(AAY1+25) and BX1(M)>(AAX1-10) and BX1(M)<(AAX1+65) Then Bob Off(5+M) : BS1(M)=2 : B1(M)=0
  2485.    P1LNEXT:
  2486.       Next M
  2487. Return 
  2488. Rem land player 2 long fighter 
  2489. P2LLL:
  2490.    If GS1<=0 Then Bell : Return 
  2491.    Screen Offset 0,625,0
  2492.    For M=1 To 8
  2493.       If BS2(M)<=0 or B2(M)=0 Then Goto P2LNEXT
  2494.       If BY2(M)>(AAY2-10) and BY2(M)<(AAY2+25) and BX2(M)>(AAX2-10) and BX2(M)<(AAX2+65) Then Bob Off(18+M) : BS2(M)=2 : B2(M)=0
  2495.    P2LNEXT:
  2496.       Next M
  2497. Return 
  2498. Rem time to rebuild
  2499. REBUILD:
  2500.    Bell 20
  2501.    If CS1<10 and CS1>0 Then Inc CS1 : Inc CS1
  2502.    If CS2<10 and CS2>0 Then Inc CS2 : Inc CS2
  2503.    If GS1<25 and GS1>0 Then Inc GS1
  2504.    If GS2<25 and GS2>0 Then Inc GS2
  2505.    For A=1 To 2
  2506.       If DS1(A)<6 and DS1(A)>0 Then Inc DS1(A)
  2507.       If DS2(A)<6 and DS2(A)>0 Then Inc DS2(A)
  2508.       If SS1(A)<5 and SS1(A)>0 Then Inc SS1(A)
  2509.       If SS2(A)<5 and SS2(A)>0 Then Inc SS2(A)
  2510.       If LS1(A)<5 and LS1(A)>0 Then Inc LS1(A)
  2511.       If LS2(A)<5 and LS2(A)>0 Then Inc LS2(A)
  2512.    Next A
  2513.    For A=1 To 3
  2514.       If PS1(A)<3 and PS1(A)>0 Then Inc PS1(A)
  2515.       If PS2(A)<3 and PS2(A)>0 Then Inc PS2(A)
  2516.    Next A
  2517.    For A=1 To 4
  2518.       If FS1(A)<3 and FS1(A)>0 Then Inc FS1(A)
  2519.       If FS2(A)<3 and FS2(A)>0 Then Inc FS2(A)
  2520.    Next A
  2521.    Q1=1 : Q2=1
  2522.    For A=1 To 5
  2523.       If A1(A)=-1 and Q1=1 and CS1>0 Then A1(A)=0 : AF1(A)=10 : Q1=0
  2524.       If A2(A)=-1 and Q2=1 and CS2>0 Then A2(A)=0 : AF2(A)=10 : Q2=0
  2525.    Next A
  2526.    Q1=1 : Q2=1
  2527.    For A=1 To 8
  2528.       If BS1(A)<=0 and Q1=1 and GS1>0 Then BS1(A)=2 : B1(A)=0 : Q1=0
  2529.       If BS2(A)<=0 and Q2=1 and GS2>0 Then BS2(A)=2 : B2(A)=0 : Q2=0
  2530.    Next A
  2531. Return 
  2532. P2DEAD:
  2533.    Screen Open 0,320,200,32,Lowres
  2534.    Load Iff "iff/mountain.iff",0
  2535.    Load "sprites/end-game.abk"
  2536.    Get Sprite Palette 
  2537.    Paste Bob 110,20,1
  2538.    Paste Bob 150,20,2
  2539.    Paste Bob 115,40,3
  2540.    Paste Bob 180,40,5
  2541.    Repeat : Until Mouse Key=0
  2542.    Repeat : Until Mouse Key<>0
  2543.    Do : Loop 
  2544. Return 
  2545. P1DEAD:
  2546.    Screen Open 0,320,200,32,Lowres
  2547.    Load Iff "iff/mountain.iff",0
  2548.    Load "sprites/end-game.abk"
  2549.    Get Sprite Palette 
  2550.    Paste Bob 110,20,1
  2551.    Paste Bob 150,20,2
  2552.    Paste Bob 115,40,3
  2553.    Paste Bob 180,40,4
  2554.    Repeat : Until Mouse Key=0
  2555.    Repeat : Until Mouse Key<>0
  2556.    Do : Loop 
  2557. Return